fix: NET Control "#" column now renumbers on reorder

The pass-order "#" is a rowIndex valueGetter, but AG-Grid keeps the same row
node across a reorder (getRowId by id) and caches the value, so a moved station
kept its old number. Force-refresh the __order column on every model update in
passOrder mode.
This commit is contained in:
2026-07-23 23:11:58 +02:00
parent 5e09b6a796
commit 1a0a349fb3
+8 -1
View File
@@ -407,9 +407,16 @@ export function RecentQSOsGrid({ rows, selectAllSignal, selectRowSignal, rowDrag
const reportFilteredCount = useCallback((e: { api?: any }) => { const reportFilteredCount = useCallback((e: { api?: any }) => {
const api = e?.api ?? gridRef.current?.api; const api = e?.api ?? gridRef.current?.api;
if (api?.getDisplayedRowCount) setDispCount(api.getDisplayedRowCount()); if (api?.getDisplayedRowCount) setDispCount(api.getDisplayedRowCount());
// Pass-order "#" is a rowIndex-based valueGetter; AG-Grid keeps the same
// row node across a reorder (getRowId by id), so the number is cached and
// stale until we force it. Refresh it on every model update (a reorder
// fires one). force:true bypasses the value cache.
if (passOrder && api?.refreshCells) {
api.refreshCells({ columns: ['__order'], force: true });
}
if (!api || !onFilteredCountChange) return; if (!api || !onFilteredCountChange) return;
onFilteredCountChange(api.isAnyFilterPresent?.() ? api.getDisplayedRowCount() : null); onFilteredCountChange(api.isAnyFilterPresent?.() ? api.getDisplayedRowCount() : null);
}, [onFilteredCountChange]); }, [onFilteredCountChange, passOrder]);
const saveColumnState = useCallback(() => { const saveColumnState = useCallback(() => {
if (restoringRef.current) return; // ignore the events fired by a column rebuild if (restoringRef.current) return; // ignore the events fired by a column rebuild
const state = gridRef.current?.api?.getColumnState(); const state = gridRef.current?.api?.getColumnState();