diff --git a/ui/desktop/src/App.test.tsx b/ui/desktop/src/App.test.tsx index 338c1e9a1f..a4a9049f4a 100644 --- a/ui/desktop/src/App.test.tsx +++ b/ui/desktop/src/App.test.tsx @@ -15,6 +15,7 @@ Object.defineProperty(window, 'location', { search: '', href: 'http://localhost:3000', origin: 'http://localhost:3000', + pathname: '/', }, writable: true, }); @@ -196,6 +197,7 @@ describe('App Component - Brand New State', () => { vi.clearAllMocks(); window.location.hash = ''; window.location.search = ''; + window.location.pathname = '/'; window.sessionStorage.clear(); window.localStorage.clear(); }); diff --git a/ui/desktop/src/utils/appInitialization.ts b/ui/desktop/src/utils/appInitialization.ts index 3313751cf8..8069352acd 100644 --- a/ui/desktop/src/utils/appInitialization.ts +++ b/ui/desktop/src/utils/appInitialization.ts @@ -95,8 +95,18 @@ export const initializeApp = async ({ } } } - window.location.hash = '#/'; - window.history.replaceState({}, '', '#/'); + + // Only redirect to home if we're still on the initial empty hash or root + // This prevents redirecting users who have already navigated elsewhere during initialization + const currentHash = window.location.hash; + const currentPathname = window.location.pathname; + const isOnRootRoute = + currentPathname === '/' && (!currentHash || currentHash === '#' || currentHash === '#/'); + + if (isOnRootRoute) { + window.location.hash = '#/'; + window.history.replaceState({}, '', '#/'); + } }; const initializeForSessionResume = async ({