diff --git a/libs/anglify/src/components/data-table/data-table.interface.ts b/libs/anglify/src/components/data-table/data-table.interface.ts index 5126412c..3cce7fa8 100644 --- a/libs/anglify/src/components/data-table/data-table.interface.ts +++ b/libs/anglify/src/components/data-table/data-table.interface.ts @@ -4,7 +4,7 @@ export type DataTableHeader = { filterable?: boolean; hidden?: boolean; hiddenOnMobile?: boolean; - sort?(a: DataTableItem, b: DataTableItem): number; + sort?(a: DataTableItem, b: DataTableItem, direction: SortSetting['direction']): number; sortable?: boolean; text: string; value: string; diff --git a/libs/anglify/src/components/data-table/services/data.service.ts b/libs/anglify/src/components/data-table/services/data.service.ts index efa3f9f4..b0f06497 100644 --- a/libs/anglify/src/components/data-table/services/data.service.ts +++ b/libs/anglify/src/components/data-table/services/data.service.ts @@ -75,10 +75,9 @@ export class DataService { // if sort function is defined in headers, use it const header = headers.find(header => header.value === option.value); if (header?.sort) { - const sort = header.sort(a, b); - - if (option.direction === 'desc') return sort * -1; - return sort; + const sort = header.sort(a, b, option.direction); + if (sort !== 0) return sort; + continue; } const aValue = a[option.value];