Skip to content

Commit 0e720d7

Browse files
waleedlatif1claude
andcommitted
fix(tables): restore column width locally on delete-column undo
Add onColumnWidthsChange callback to undo hook so restored column widths update local component state, not just server metadata. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 754b39d commit 0e720d7

2 files changed

Lines changed: 12 additions & 1 deletion

File tree

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,11 +272,16 @@ export function Table({
272272

273273
const getColumnWidths = useCallback(() => columnWidthsRef.current, [])
274274

275+
const handleColumnWidthsChange = useCallback((widths: Record<string, number>) => {
276+
setColumnWidths(widths)
277+
}, [])
278+
275279
const { pushUndo, undo, redo } = useTableUndo({
276280
workspaceId,
277281
tableId,
278282
onColumnOrderChange: handleColumnOrderChange,
279283
onColumnRename: handleColumnRename,
284+
onColumnWidthsChange: handleColumnWidthsChange,
280285
getColumnWidths,
281286
})
282287
const undoRef = useRef(undo)

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ interface UseTableUndoProps {
3636
tableId: string
3737
onColumnOrderChange?: (order: string[]) => void
3838
onColumnRename?: (oldName: string, newName: string) => void
39+
onColumnWidthsChange?: (widths: Record<string, number>) => void
3940
getColumnWidths?: () => Record<string, number>
4041
}
4142

@@ -44,6 +45,7 @@ export function useTableUndo({
4445
tableId,
4546
onColumnOrderChange,
4647
onColumnRename,
48+
onColumnWidthsChange,
4749
getColumnWidths,
4850
}: UseTableUndoProps) {
4951
const push = useTableUndoStore((s) => s.push)
@@ -71,6 +73,8 @@ export function useTableUndo({
7173
onColumnOrderChangeRef.current = onColumnOrderChange
7274
const onColumnRenameRef = useRef(onColumnRename)
7375
onColumnRenameRef.current = onColumnRename
76+
const onColumnWidthsChangeRef = useRef(onColumnWidthsChange)
77+
onColumnWidthsChangeRef.current = onColumnWidthsChange
7478
const getColumnWidthsRef = useRef(getColumnWidths)
7579
getColumnWidthsRef.current = getColumnWidths
7680

@@ -234,10 +238,12 @@ export function useTableUndo({
234238
metadata.columnOrder = action.previousOrder
235239
}
236240
if (action.previousWidth !== null) {
237-
metadata.columnWidths = {
241+
const merged = {
238242
...(getColumnWidthsRef.current?.() ?? {}),
239243
[action.columnName]: action.previousWidth,
240244
}
245+
metadata.columnWidths = merged
246+
onColumnWidthsChangeRef.current?.(merged)
241247
}
242248
if (Object.keys(metadata).length > 0) {
243249
updateMetadataMutation.mutate(metadata)

0 commit comments

Comments
 (0)