From 3889a8028a5c1537ae0d60065bff4d3ae190a4dd Mon Sep 17 00:00:00 2001 From: Kael Date: Tue, 16 Apr 2024 02:08:50 +1000 Subject: [PATCH] chore(VDataTable): add additional check for customResult = 0 --- .../src/components/VDataTable/composables/sort.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/vuetify/src/components/VDataTable/composables/sort.ts b/packages/vuetify/src/components/VDataTable/composables/sort.ts index e391c363582..d60e34bd900 100644 --- a/packages/vuetify/src/components/VDataTable/composables/sort.ts +++ b/packages/vuetify/src/components/VDataTable/composables/sort.ts @@ -125,6 +125,7 @@ export function sortItems> ( return [...items].sort((a, b) => { for (let i = 0; i < sortByItems.length; i++) { + let hasCustomResult = false const sortKey = sortByItems[i].key const sortOrder = sortByItems[i].order ?? 'asc' @@ -144,18 +145,20 @@ export function sortItems> ( const customResult = customRawSorters[sortKey](sortARaw, sortBRaw) if (customResult == null) continue - - return customResult + hasCustomResult = true + if (customResult) return customResult } if (customSorters?.[sortKey]) { const customResult = customSorters[sortKey](sortA, sortB) if (customResult == null) continue - - return customResult + hasCustomResult = true + if (customResult) return customResult } + if (hasCustomResult) continue + // Dates should be compared numerically if (sortA instanceof Date && sortB instanceof Date) { return sortA.getTime() - sortB.getTime()