mirror of
https://github.com/Fabio286/antares.git
synced 2025-06-05 21:59:22 +02:00
fix: incorrect behavior in sorting tables with null/empty values, fixes #883
This commit is contained in:
@@ -366,12 +366,21 @@ const sortedResults = computed(() => {
|
|||||||
const sortObj = currentSort.value[resultsetIndex.value];
|
const sortObj = currentSort.value[resultsetIndex.value];
|
||||||
|
|
||||||
return [...localResults.value].sort((a: any, b: any) => {
|
return [...localResults.value].sort((a: any, b: any) => {
|
||||||
let modifier = 1;
|
const modifier = sortObj.dir === 'desc' ? -1 : 1;
|
||||||
let valA = typeof a[sortObj.field] === 'string' ? a[sortObj.field].toLowerCase() : a[sortObj.field];
|
let valA = a[sortObj.field];
|
||||||
if (!isNaN(valA)) valA = Number(valA);
|
let valB = b[sortObj.field];
|
||||||
let valB = typeof b[sortObj.field] === 'string' ? b[sortObj.field].toLowerCase() : b[sortObj.field];
|
|
||||||
if (!isNaN(valB)) valB = Number(valB);
|
// Handle null values
|
||||||
if (sortObj.dir === 'desc') modifier = -1;
|
if (valA === null && valB !== null) return sortObj.dir === 'asc' ? -1 : 1;
|
||||||
|
if (valA !== null && valB === null) return sortObj.dir === 'asc' ? 1 : -1;
|
||||||
|
if (valA === null && valB === null) return 0;
|
||||||
|
|
||||||
|
valA = typeof valA === 'string' ? valA.toLowerCase() : valA;
|
||||||
|
valB = typeof valB === 'string' ? valB.toLowerCase() : valB;
|
||||||
|
|
||||||
|
if (!isNaN(valA)) valA = String(Number(valA));
|
||||||
|
if (!isNaN(valB)) valB = String(Number(valB));
|
||||||
|
|
||||||
if (valA < valB) return -1 * modifier;
|
if (valA < valB) return -1 * modifier;
|
||||||
if (valA > valB) return 1 * modifier;
|
if (valA > valB) return 1 * modifier;
|
||||||
return 0;
|
return 0;
|
||||||
|
Reference in New Issue
Block a user