From 1abe4a02b483128129203f4560a3c4bab3a44a52 Mon Sep 17 00:00:00 2001 From: Ihor Yeromin Date: Tue, 13 Feb 2024 14:21:36 +0200 Subject: [PATCH] Table: Update page index on data update (#81574) * fix(table): page index reset on data update --- packages/grafana-ui/src/components/Table/Table.tsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/packages/grafana-ui/src/components/Table/Table.tsx b/packages/grafana-ui/src/components/Table/Table.tsx index 7bb9e9cf976..774856991cd 100644 --- a/packages/grafana-ui/src/components/Table/Table.tsx +++ b/packages/grafana-ui/src/components/Table/Table.tsx @@ -237,6 +237,17 @@ export const Table = memo((props: Props) => { setPageSize(pageSize); }, [pageSize, setPageSize]); + useEffect(() => { + // Reset page index when data changes + // This is needed because react-table does not do this automatically + // autoResetPage is set to false because setting it to true causes the issue described in + // https://github.com/grafana/grafana/pull/67477 + if (data.length / pageSize < state.pageIndex) { + gotoPage(0); + } + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [data]); + useResetVariableListSizeCache(extendedState, listRef, data, hasUniqueId); useFixScrollbarContainer(variableSizeListScrollbarRef, tableDivRef);