Fix how filter models get set when a saved filter is loaded

This commit is contained in:
2023-06-22 16:24:26 -05:00
parent 37eb7f073b
commit 11a4ca256a

View File

@ -929,12 +929,21 @@ function RecordQuery({table, launchProcess}: Props): JSX.Element
} }
}; };
const handleSortChange = (gridSort: GridSortModel) => const handleSortChangeForDataGrid = (gridSort: GridSortModel) =>
{
////////////////////////////////////////////////////////////////////////////////////////////////////////////
// this method just wraps handleSortChange, but w/o the optional 2nd param, so we can use it in data grid //
////////////////////////////////////////////////////////////////////////////////////////////////////////////
handleSortChange(gridSort);
}
const handleSortChange = (gridSort: GridSortModel, overrideFilterModel?: GridFilterModel) =>
{ {
if (gridSort && gridSort.length > 0) if (gridSort && gridSort.length > 0)
{ {
setColumnSortModel(gridSort); setColumnSortModel(gridSort);
setQueryFilter(FilterUtils.buildQFilterFromGridFilter(tableMetaData, filterModel, gridSort, rowsPerPage)); const gridFilterModelToUse = overrideFilterModel ?? filterModel;
setQueryFilter(FilterUtils.buildQFilterFromGridFilter(tableMetaData, gridFilterModelToUse, gridSort, rowsPerPage));
localStorage.setItem(sortLocalStorageKey, JSON.stringify(gridSort)); localStorage.setItem(sortLocalStorageKey, JSON.stringify(gridSort));
} }
}; };
@ -1286,7 +1295,7 @@ function RecordQuery({table, launchProcess}: Props): JSX.Element
const models = await FilterUtils.determineFilterAndSortModels(qController, tableMetaData, qRecord.values.get("filterJson"), null, null, null); const models = await FilterUtils.determineFilterAndSortModels(qController, tableMetaData, qRecord.values.get("filterJson"), null, null, null);
handleFilterChange(models.filter); handleFilterChange(models.filter);
handleSortChange(models.sort); handleSortChange(models.sort, models.filter);
localStorage.setItem(currentSavedFilterLocalStorageKey, selectedSavedFilterId.toString()); localStorage.setItem(currentSavedFilterLocalStorageKey, selectedSavedFilterId.toString());
} }
else else
@ -1919,7 +1928,7 @@ function RecordQuery({table, launchProcess}: Props): JSX.Element
onColumnVisibilityModelChange={handleColumnVisibilityChange} onColumnVisibilityModelChange={handleColumnVisibilityChange}
onColumnOrderChange={handleColumnOrderChange} onColumnOrderChange={handleColumnOrderChange}
onSelectionModelChange={selectionChanged} onSelectionModelChange={selectionChanged}
onSortModelChange={handleSortChange} onSortModelChange={handleSortChangeForDataGrid}
sortingOrder={["asc", "desc"]} sortingOrder={["asc", "desc"]}
sortModel={columnSortModel} sortModel={columnSortModel}
getRowClassName={(params) => (params.indexRelativeToCurrentPage % 2 === 0 ? "even" : "odd")} getRowClassName={(params) => (params.indexRelativeToCurrentPage % 2 === 0 ? "even" : "odd")}