From 403cfebb89a35a3a8f29558f754c49505e6d9663 Mon Sep 17 00:00:00 2001 From: Eunjae Lee Date: Fri, 7 Feb 2025 18:12:42 +0100 Subject: [PATCH] fix: resize columns when column visibility changes (#19172) * fix: resize columns when column visibility changes * fill initial column size if missing * use different variable --- packages/features/data-table/lib/resizing.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/features/data-table/lib/resizing.ts b/packages/features/data-table/lib/resizing.ts index 82c9869bd1..ab677598e7 100644 --- a/packages/features/data-table/lib/resizing.ts +++ b/packages/features/data-table/lib/resizing.ts @@ -51,10 +51,13 @@ function getAdjustedColumnSizing({ const getColumnSize = (header: Header) => { const id = header.id; - if (resizedColumns.has(id)) { - return currentColumnSizing[id] ?? initialColumnSizing[id] ?? header.getSize(); + if (!initialColumnSizing[id]) { + initialColumnSizing[id] = header.getSize(); } - return initialColumnSizing[id] ?? header.getSize(); + if (resizedColumns.has(id)) { + return currentColumnSizing[id] ?? initialColumnSizing[id]; + } + return initialColumnSizing[id]; }; const isAdjustable = (header: Header) => @@ -164,7 +167,7 @@ export function usePersistentColumnResizing({ ...old, columnSizing: newColumnSizing, })); - }, [debouncedContainerWidth]); + }, [debouncedContainerWidth, table.getFlatHeaders().length]); useEffect(() => { if (!enabled || !identifier) return;