Skip to content

Commit b37a049

Browse files
committed
fix(tables): use current frozenColumns on delete-column redo, not stale snapshot
1 parent 6526129 commit b37a049

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

apps/sim/app/workspace/[workspaceId]/tables/[tableId]/components/table-grid/table-grid.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -495,6 +495,10 @@ export function TableGrid({
495495
frozenColumnsRef.current = frozen
496496
}
497497

498+
function getFrozenColumns() {
499+
return frozenColumnsRef.current
500+
}
501+
498502
const handleFreezeToggle = useCallback((columnName: string) => {
499503
const col = columnsRef.current.find((c) => c.name === columnName)
500504
const siblings: string[] = col?.workflowGroupId
@@ -539,6 +543,7 @@ export function TableGrid({
539543
onColumnRename: handleColumnRename,
540544
onColumnWidthsChange: handleColumnWidthsChange,
541545
onFrozenColumnsChange: handleFrozenColumnsChange,
546+
getFrozenColumns,
542547
getColumnWidths,
543548
})
544549
const undoRef = useRef(undo)

apps/sim/hooks/use-table-undo.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ interface UseTableUndoProps {
3232
onColumnRename?: (oldName: string, newName: string) => void
3333
onColumnWidthsChange?: (widths: Record<string, number>) => void
3434
onFrozenColumnsChange?: (frozen: string[]) => void
35+
getFrozenColumns?: () => string[]
3536
getColumnWidths?: () => Record<string, number>
3637
}
3738

@@ -42,6 +43,7 @@ export function useTableUndo({
4243
onColumnRename,
4344
onColumnWidthsChange,
4445
onFrozenColumnsChange,
46+
getFrozenColumns,
4547
getColumnWidths,
4648
}: UseTableUndoProps) {
4749
const push = useTableUndoStore((s) => s.push)
@@ -73,6 +75,8 @@ export function useTableUndo({
7375
onColumnWidthsChangeRef.current = onColumnWidthsChange
7476
const onFrozenColumnsChangeRef = useRef(onFrozenColumnsChange)
7577
onFrozenColumnsChangeRef.current = onFrozenColumnsChange
78+
const getFrozenColumnsRef = useRef(getFrozenColumns)
79+
getFrozenColumnsRef.current = getFrozenColumns
7680
const getColumnWidthsRef = useRef(getColumnWidths)
7781
getColumnWidthsRef.current = getColumnWidths
7882

@@ -303,9 +307,8 @@ export function useTableUndo({
303307
onColumnWidthsChangeRef.current?.(rest)
304308
}
305309
if (action.previousFrozenColumns !== null) {
306-
const newFrozen = action.previousFrozenColumns.filter(
307-
(n) => n !== action.columnName
308-
)
310+
const currentFrozen = getFrozenColumnsRef.current?.() ?? []
311+
const newFrozen = currentFrozen.filter((n) => n !== action.columnName)
309312
onFrozenColumnsChangeRef.current?.(newFrozen)
310313
metadata.frozenColumns = newFrozen
311314
}

0 commit comments

Comments
 (0)