Fix stale closure in kanban area-selection and card-drag handlers

- Refresh area selection measurements on pointer up to avoid stale cache
- Read worktree IDs ref directly in drag handler to close stale closure
This commit is contained in:
Jinjing
2026-07-29 17:11:50 -07:00
parent c5ab2b1a68
commit 38e46e149d
2 changed files with 3 additions and 3 deletions
@@ -249,6 +249,7 @@ export function useWorkspaceKanbanAreaSelection({
window.cancelAnimationFrame(state.scrollFrameId)
state.scrollFrameId = null
}
refreshAreaSelectionMeasurements()
flushAreaSelectionDrag()
if (shouldCommitWorkspaceKanbanAreaSelection(state)) {
updateSelectionForAreaRef.current(
@@ -262,7 +263,7 @@ export function useWorkspaceKanbanAreaSelection({
dragRef.current = null
setOverlayRect(overlayRef.current, null)
},
[flushAreaSelectionDrag, overlayRef]
[flushAreaSelectionDrag, overlayRef, refreshAreaSelectionMeasurements]
)
const handleAreaSelectionPointerDown = useCallback(
@@ -298,10 +298,9 @@ export function useWorkspaceKanbanCardPointerDrag({
return
}
const selectedIds = selectedWorktreeIdsRef.current
const selectedWorktrees = selectedWorktreesRef.current
const worktreeIds =
selectedIds.has(worktreeId) && selectedWorktrees.length > 1
selectedWorktreeIdsRef.current.has(worktreeId) && selectedWorktrees.length > 1
? selectedWorktrees.map((worktree) => worktree.id)
: [worktreeId]
dragRef.current = {