From c707a2deecf899e2c498f8805793d5fc97856e08 Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Sat, 30 May 2026 05:43:22 -0700 Subject: [PATCH] fix: guard linear subissue open state (#3673) --- .../src/components/LinearIssueWorkspace.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/components/LinearIssueWorkspace.tsx b/src/renderer/src/components/LinearIssueWorkspace.tsx index c8ab238a234..d965876cd16 100644 --- a/src/renderer/src/components/LinearIssueWorkspace.tsx +++ b/src/renderer/src/components/LinearIssueWorkspace.tsx @@ -112,6 +112,7 @@ function LinearIssueSubIssueButton({ const [subIssues, setSubIssues] = useState(issue.subIssues ?? []) const [submitting, setSubmitting] = useState(false) const [openingSubIssueId, setOpeningSubIssueId] = useState(null) + const mountedRef = useMountedRef() useEffect(() => { setSubIssues(issue.subIssues ?? []) @@ -122,18 +123,25 @@ function LinearIssueSubIssueButton({ setOpeningSubIssueId(subIssue.id) try { const fullIssue = await fetchLinearIssue(subIssue.id, issue.workspaceId) + if (!mountedRef.current) { + return + } if (fullIssue) { onOpenIssue(fullIssue) } else { toast.error('Failed to load sub-issue') } } catch (error) { - toast.error(error instanceof Error ? error.message : 'Failed to load sub-issue') + if (mountedRef.current) { + toast.error(error instanceof Error ? error.message : 'Failed to load sub-issue') + } } finally { - setOpeningSubIssueId(null) + if (mountedRef.current) { + setOpeningSubIssueId(null) + } } }, - [fetchLinearIssue, issue.workspaceId, onOpenIssue] + [fetchLinearIssue, issue.workspaceId, mountedRef, onOpenIssue] ) const handleCreate = useCallback(async () => {