From bcf249e9c40310ddbc5842d55f2a212a947182fc Mon Sep 17 00:00:00 2001 From: PhatPhuckDave Date: Mon, 7 Jul 2025 21:06:28 +0200 Subject: [PATCH] Fix sorting shit in recap --- src/components/RecapPopover.tsx | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/components/RecapPopover.tsx b/src/components/RecapPopover.tsx index cf0b975..b423bda 100644 --- a/src/components/RecapPopover.tsx +++ b/src/components/RecapPopover.tsx @@ -30,7 +30,21 @@ const RecapPopover: React.FC = ({ value: calculateJobValue(job) })) .filter(({ value }) => value !== 0) - .sort((a, b) => sortDescending ? Math.abs(b.value) - Math.abs(a.value) : Math.abs(a.value) - Math.abs(b.value)); + .sort((a, b) => { + if (sortDescending) { + // For descending: negative values first, then positive values + // Within each group, sort by magnitude + if (a.value < 0 && b.value >= 0) return -1; // a (negative) comes first + if (a.value >= 0 && b.value < 0) return 1; // b (negative) comes first + return Math.abs(b.value) - Math.abs(a.value); // same sign, sort by magnitude + } else { + // For ascending: positive values first, then negative values + // Within each group, sort by magnitude + if (a.value >= 0 && b.value < 0) return -1; // a (positive) comes first + if (a.value < 0 && b.value >= 0) return 1; // b (positive) comes first + return Math.abs(a.value) - Math.abs(b.value); // same sign, sort by magnitude + } + }); const handleJobClick = (jobId: string) => { navigate(`/${jobId}`);