@@ -9,6 +9,7 @@ import { getModelFromColumnFilter } from "../utils/getModelFromColumnFilter";
99import { getSortingStateFromModel } from "../utils/getSortingStateFromModel" ;
1010import { getModelFromSortingState } from "../utils/getModelFromSortingState" ;
1111import { OptionalNullable } from "../types/NullableTypes" ;
12+ import { useMemo } from "react" ;
1213
1314/**
1415 * A react hook that returns a react table instance and the state of the table
@@ -63,31 +64,30 @@ const useReactDataTable = <TData, TFilter extends FilterModel = Record<string, n
6364 } ) ) ;
6465 const skeletonData = Array . from ( { length : paginationInternal . pageSize } , ( ) => ( { } as TData ) ) ;
6566
67+ const columnFilters = useMemo ( ( ) => getColumnFilterFromModel ( effectiveColumnFilters ) , [ effectiveColumnFilters ] ) ;
68+ const sorting = useMemo ( ( ) => getSortingStateFromModel ( effectiveSorting ) , [ effectiveSorting ] ) ;
69+
6670 const table = useReactTable < TData > ( {
6771 data : isLoading ? skeletonData : data ,
6872 columns : isLoading ? skeletonColumns : internalColumns ,
6973
7074 onColumnFiltersChange : ( filtersOrUpdaterFn ) => {
71- const newFilter =
72- typeof filtersOrUpdaterFn !== "function"
73- ? filtersOrUpdaterFn
74- : filtersOrUpdaterFn ( getColumnFilterFromModel ( effectiveColumnFilters ) ) ;
75+ const newFilter = typeof filtersOrUpdaterFn !== "function" ? filtersOrUpdaterFn : filtersOrUpdaterFn ( columnFilters ) ;
7576 return effectiveOnColumnFiltersChange ( getModelFromColumnFilter ( newFilter ) ) ;
7677 } ,
7778 onPaginationChange : ( paginationOrUpdaterFn ) => {
7879 const newFilter = typeof paginationOrUpdaterFn !== "function" ? paginationOrUpdaterFn : paginationOrUpdaterFn ( effectivePagination ) ;
7980 return effectiveOnPaginationChange ( newFilter ) ;
8081 } ,
8182 onSortingChange : ( sortingOrUpdaterFn ) => {
82- const newFilter =
83- typeof sortingOrUpdaterFn !== "function" ? sortingOrUpdaterFn : sortingOrUpdaterFn ( getSortingStateFromModel ( effectiveSorting ) ) ;
83+ const newFilter = typeof sortingOrUpdaterFn !== "function" ? sortingOrUpdaterFn : sortingOrUpdaterFn ( sorting ) ;
8484 return effectiveOnSortingChange ( getModelFromSortingState ( newFilter ) ) ;
8585 } ,
8686
8787 state : {
88- columnFilters : getColumnFilterFromModel ( effectiveColumnFilters ) ,
88+ columnFilters,
8989 pagination : effectivePagination ,
90- sorting : getSortingStateFromModel ( effectiveSorting ) ,
90+ sorting,
9191 } ,
9292
9393 initialState : {
0 commit comments