From 046922c9cebaab102025b28dffa3234372fc4073 Mon Sep 17 00:00:00 2001 From: Armin Mehinovic Date: Thu, 13 Feb 2025 20:08:24 +0100 Subject: [PATCH] code improvements --- .../pagination/useGridPaginationModel.ts | 37 ++++++++++--------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/packages/x-data-grid/src/hooks/features/pagination/useGridPaginationModel.ts b/packages/x-data-grid/src/hooks/features/pagination/useGridPaginationModel.ts index 9f12ed06045d8..b08a15622e859 100644 --- a/packages/x-data-grid/src/hooks/features/pagination/useGridPaginationModel.ts +++ b/packages/x-data-grid/src/hooks/features/pagination/useGridPaginationModel.ts @@ -77,10 +77,8 @@ export const useGridPaginationModel = ( >, ) => { const logger = useGridLogger(apiRef, 'useGridPaginationModel'); - - const filterModel = useGridSelector(apiRef, gridFilterModelSelector); const densityFactor = useGridSelector(apiRef, gridDensityFactorSelector); - const previousFilterModel = React.useRef(filterModel); + const previousFilterModel = React.useRef(gridFilterModelSelector(apiRef)); const rowHeight = Math.floor(props.rowHeight * densityFactor); apiRef.current.registerControlState({ @@ -276,24 +274,27 @@ export const useGridPaginationModel = ( * because of and update of the operator from an item that does not have the value * or reseting when the filter panel is just opened */ - const handleFilterModelChange = React.useCallback(() => { - const paginationModel = gridPaginationModelSelector(apiRef); - const currentActiveFilters = { - ...filterModel, - // replace items with the active items - items: gridFilterActiveItemsSelector(apiRef), - }; + const handleFilterModelChange = React.useCallback>( + (filterModel) => { + const paginationModel = gridPaginationModelSelector(apiRef); + const currentActiveFilters = { + ...filterModel, + // replace items with the active items + items: gridFilterActiveItemsSelector(apiRef), + }; - if (isDeepEqual(currentActiveFilters, previousFilterModel.current)) { - return; - } + if (isDeepEqual(currentActiveFilters, previousFilterModel.current)) { + return; + } - previousFilterModel.current = currentActiveFilters; + previousFilterModel.current = currentActiveFilters; - if (paginationModel.page !== 0) { - apiRef.current.setPage(0); - } - }, [apiRef, filterModel]); + if (paginationModel.page !== 0) { + apiRef.current.setPage(0); + } + }, + [apiRef], + ); useGridApiEventHandler(apiRef, 'viewportInnerSizeChange', handleUpdateAutoPageSize); useGridApiEventHandler(apiRef, 'paginationModelChange', handlePaginationModelChange);