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:
@@ -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();
|
||||||
|
|||||||
Reference in New Issue
Block a user