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)
{
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));
}
};
@ -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);
handleFilterChange(models.filter);
handleSortChange(models.sort);
handleSortChange(models.sort, models.filter);
localStorage.setItem(currentSavedFilterLocalStorageKey, selectedSavedFilterId.toString());
}
else
@ -1919,7 +1928,7 @@ function RecordQuery({table, launchProcess}: Props): JSX.Element
onColumnVisibilityModelChange={handleColumnVisibilityChange}
onColumnOrderChange={handleColumnOrderChange}
onSelectionModelChange={selectionChanged}
onSortModelChange={handleSortChange}
onSortModelChange={handleSortChangeForDataGrid}
sortingOrder={["asc", "desc"]}
sortModel={columnSortModel}
getRowClassName={(params) => (params.indexRelativeToCurrentPage % 2 === 0 ? "even" : "odd")}