diff --git a/packages/main/src/components/AnalyticalTable/index.tsx b/packages/main/src/components/AnalyticalTable/index.tsx index 0d3fc68de7e..3e5ba82509d 100644 --- a/packages/main/src/components/AnalyticalTable/index.tsx +++ b/packages/main/src/components/AnalyticalTable/index.tsx @@ -163,7 +163,7 @@ const AnalyticalTable = forwardRef { - if (isInitial.current && visibleColumns.length) { + if (isInitialized.current && visibleColumns.length) { columnVirtualizer.measure(); } else { - isInitial.current = true; + isInitialized.current = true; } }, [visibleColumns.length]); + // force re-measure if `state.groupBy` or `state.columnOrder` changes + useEffect(() => { + if (isInitialized.current && (tableState.groupBy || tableState.columnOrder)) { + setTimeout(() => { + columnVirtualizer.measure(); + }, 100); + } else { + isInitialized.current = true; + } + }, [tableState.groupBy, tableState.columnOrder]); const [analyticalTableRef, scrollToRef] = useTableScrollHandles(updatedRef, dispatch);