From 0cee73c515f17070d57911a9a0fab33d217b326b Mon Sep 17 00:00:00 2001 From: Rohan Satkar Date: Wed, 4 Feb 2026 15:24:14 +0530 Subject: [PATCH 1/2] fix(datatable): restore state after locale initialization --- components/lib/datatable/DataTable.js | 30 ++++++++++++++++----------- 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/components/lib/datatable/DataTable.js b/components/lib/datatable/DataTable.js index f2d9494c93..1da25aa9d0 100644 --- a/components/lib/datatable/DataTable.js +++ b/components/lib/datatable/DataTable.js @@ -83,6 +83,7 @@ export const DataTable = React.forwardRef((inProps, ref) => { const columnSortFunction = React.useRef(null); const columnField = React.useRef(null); const filterTimeout = React.useRef(null); + const restoredRef = React.useRef(false); if (props.rows !== d_rowsState && !props.onPage) { setRowsState(props.rows); @@ -341,16 +342,18 @@ export const DataTable = React.forwardRef((inProps, ref) => { } if (restoredState.filters) { - setD_filtersState(cloneFilters(restoredState.filters)); + const clonedFilters = cloneFilters(restoredState.filters); + + setD_filtersState(clonedFilters); if (props.onFilter) { props.onFilter( createEvent({ - filters: restoredState.filters + filters: clonedFilters }) ); } else { - setFiltersState(cloneFilters(restoredState.filters)); + setFiltersState(clonedFilters); } } @@ -1507,16 +1510,7 @@ export const DataTable = React.forwardRef((inProps, ref) => { elementRef.current.setAttribute(attributeSelector.current, ''); } - //setFiltersState(cloneFilters(props.filters)); // Github #4248 setD_filtersState(cloneFilters(props.filters)); - - if (isStateful()) { - restoreState(); - - if (props.resizableColumns) { - restoreColumnWidths(); - } - } }); useUpdateEffect(() => { @@ -1529,6 +1523,18 @@ export const DataTable = React.forwardRef((inProps, ref) => { }; }, [props.breakpoint]); + useUpdateEffect(() => { + if (!restoredRef.current && isStateful()) { + restoredRef.current = true; + + restoreState(); + + if (props.resizableColumns) { + restoreColumnWidths(); + } + } + }, [context?.locale]); + useUpdateEffect(() => { const filters = cloneFilters(props.filters); From bdc5612023568ff4d769e23076065cdd58d6d5a9 Mon Sep 17 00:00:00 2001 From: Rohan Satkar Date: Wed, 4 Feb 2026 18:30:58 +0530 Subject: [PATCH 2/2] fix(datatable): restore state after context initialization --- components/lib/datatable/DataTable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/lib/datatable/DataTable.js b/components/lib/datatable/DataTable.js index 1da25aa9d0..675dd2376f 100644 --- a/components/lib/datatable/DataTable.js +++ b/components/lib/datatable/DataTable.js @@ -1533,7 +1533,7 @@ export const DataTable = React.forwardRef((inProps, ref) => { restoreColumnWidths(); } } - }, [context?.locale]); + }, [context]); useUpdateEffect(() => { const filters = cloneFilters(props.filters);