fix(base): mirror filter-clear fix for sorts so deleting the last sort sticks

This commit is contained in:
Philipinho
2026-04-24 03:04:51 +01:00
parent 2db43788d5
commit dcff8d3c53
@@ -91,7 +91,13 @@ export function useViewDraft(args: UseViewDraftArgs): ViewDraftState {
if (!ready) return; if (!ready) return;
const current = storedDraft ?? null; const current = storedDraft ?? null;
const mergedFilter = current?.filter; const mergedFilter = current?.filter;
const mergedSorts = next; // If the baseline has sorts, clearing to `undefined` would fall back
// to the baseline in effectiveSorts. Persist an empty array instead
// so the draft explicitly overrides the baseline with no sorts.
const mergedSorts =
next === undefined && baselineSorts !== undefined && baselineSorts.length > 0
? []
: next;
if (mergedFilter === undefined && (mergedSorts === undefined || mergedSorts === null)) { if (mergedFilter === undefined && (mergedSorts === undefined || mergedSorts === null)) {
setDraft(RESET); setDraft(RESET);
return; return;
@@ -102,7 +108,7 @@ export function useViewDraft(args: UseViewDraftArgs): ViewDraftState {
updatedAt: new Date().toISOString(), updatedAt: new Date().toISOString(),
}); });
}, },
[ready, storedDraft, setDraft], [ready, storedDraft, setDraft, baselineSorts],
); );
const reset = useCallback(() => { const reset = useCallback(() => {