From 0d5487530870b3fb58bc21ad7340f5c07edbcfa2 Mon Sep 17 00:00:00 2001 From: gibsonliketheguitar <66423127+gibsonliketheguitar@users.noreply.github.com> Date: Sun, 19 Dec 2021 11:50:30 +0700 Subject: [PATCH] fix bug: prevent unintended state mutation --- src/hooks/useTable/useTableConfig.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/hooks/useTable/useTableConfig.ts b/src/hooks/useTable/useTableConfig.ts index 43431f3c..d4a89fe7 100644 --- a/src/hooks/useTable/useTableConfig.ts +++ b/src/hooks/useTable/useTableConfig.ts @@ -77,17 +77,20 @@ const useTableConfig = (tablePath?: string) => { */ const [resize] = useDebouncedCallback((index: number, width: number) => { const { columns } = tableConfigState; - const numberOfFixedColumns = Object.values(columns).filter( + const _columnValues = Object.values(columns); + const numberOfFixedColumns = _columnValues.filter( (col: any) => col.fixed && !col.hidden ).length; const columnsArray = _sortBy( - Object.values(columns).filter((col: any) => !col.hidden && !col.fixed), + _columnValues.filter((col: any) => !col.hidden && !col.fixed), "index" ); - let column: any = columnsArray[index - numberOfFixedColumns]; - column.width = width; - let updatedColumns = columns; - updatedColumns[column.key] = column; + const targetColumn: any = columnsArray[index - numberOfFixedColumns]; + const updatedColumns = { + ...columns, + [targetColumn.key]: { ...targetColumn, width }, + }; + documentDispatch({ action: DocActions.update, data: { columns: updatedColumns },