From 829c16181b6629c6cc7225cb5b520ae2238b488b Mon Sep 17 00:00:00 2001 From: gsxdsm Date: Tue, 17 Feb 2026 23:37:10 -0800 Subject: [PATCH] Update apps/ui/src/components/views/board-view/dialogs/discard-worktree-changes-dialog.tsx Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> --- .../dialogs/discard-worktree-changes-dialog.tsx | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/apps/ui/src/components/views/board-view/dialogs/discard-worktree-changes-dialog.tsx b/apps/ui/src/components/views/board-view/dialogs/discard-worktree-changes-dialog.tsx index 59b7e886..2212989b 100644 --- a/apps/ui/src/components/views/board-view/dialogs/discard-worktree-changes-dialog.tsx +++ b/apps/ui/src/components/views/board-view/dialogs/discard-worktree-changes-dialog.tsx @@ -304,6 +304,8 @@ export function DiscardWorktreeChangesDialog({ setExpandedFile(null); setError(null); + let cancelled = false; + const loadDiffs = async () => { try { const api = getElectronAPI(); @@ -311,21 +313,25 @@ export function DiscardWorktreeChangesDialog({ const result = await api.git.getDiffs(worktree.path); if (result.success) { const fileList = result.files ?? []; - setFiles(fileList); - setDiffContent(result.diff ?? ''); - // No files selected by default - setSelectedFiles(new Set()); + if (!cancelled) setFiles(fileList); + if (!cancelled) setDiffContent(result.diff ?? ''); + if (!cancelled) setSelectedFiles(new Set()); } } } catch (err) { + if (cancelled) return; console.warn('Failed to load diffs for discard dialog:', err); setError(err instanceof Error ? err.message : String(err)); } finally { - setIsLoadingDiffs(false); + if (!cancelled) setIsLoadingDiffs(false); } }; loadDiffs(); + + return () => { + cancelled = true; + }; } }, [open, worktree]);