From 5d4a6e1f34de21ae9d136705e4dfedac2fcd1f69 Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Sat, 30 May 2026 05:30:57 -0700 Subject: [PATCH] fix: guard browser profile create state (#3668) --- src/renderer/src/components/settings/BrowserPane.tsx | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/renderer/src/components/settings/BrowserPane.tsx b/src/renderer/src/components/settings/BrowserPane.tsx index d081b03b803..05400aebd15 100644 --- a/src/renderer/src/components/settings/BrowserPane.tsx +++ b/src/renderer/src/components/settings/BrowserPane.tsx @@ -22,6 +22,7 @@ import { BROWSER_PANE_SEARCH_ENTRIES } from './browser-pane-search' import { BrowserProfileRow } from './BrowserProfileRow' import { BrowserUseSetup } from './BrowserUsePane' import { KagiSessionLinkForm } from './KagiSessionLinkForm' +import { useMountedRef } from '@/hooks/useMountedRef' export { BROWSER_PANE_SEARCH_ENTRIES } type BrowserPaneProps = { @@ -54,6 +55,7 @@ export function BrowserPane({ const setDefaultBrowserSessionProfileId = useAppStore((s) => s.setDefaultBrowserSessionProfileId) const defaultProfile = browserSessionProfiles.find((p) => p.id === 'default') const nonDefaultProfiles = browserSessionProfiles.filter((p) => p.scope !== 'default') + const mountedRef = useMountedRef() const [homePageDraft, setHomePageDraft] = useState(browserDefaultUrl ?? '') const [newProfileDialogOpen, setNewProfileDialogOpen] = useState(false) const [newProfileName, setNewProfileName] = useState('') @@ -354,6 +356,9 @@ export function BrowserPane({ const profile = await useAppStore .getState() .createBrowserSessionProfile('isolated', trimmed) + if (!mountedRef.current) { + return + } if (profile) { setNewProfileDialogOpen(false) setNewProfileName('') @@ -362,7 +367,9 @@ export function BrowserPane({ toast.error('Failed to create profile.') } } finally { - setIsCreatingProfile(false) + if (mountedRef.current) { + setIsCreatingProfile(false) + } } }} >