diff --git a/src/pages/home/sidebar/BaseSidebarScreen.tsx b/src/pages/home/sidebar/BaseSidebarScreen.tsx index 369d1f234595..08291e151ece 100644 --- a/src/pages/home/sidebar/BaseSidebarScreen.tsx +++ b/src/pages/home/sidebar/BaseSidebarScreen.tsx @@ -11,7 +11,7 @@ import useLocalize from '@hooks/useLocalize'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import useThemeStyles from '@hooks/useThemeStyles'; import {updateLastAccessedWorkspace} from '@libs/actions/Policy/Policy'; -import * as Browser from '@libs/Browser'; +import {isMobile} from '@libs/Browser'; import getInitialSplitNavigatorState from '@libs/Navigation/AppNavigator/createSplitNavigator/getInitialSplitNavigatorState'; import {getPreservedSplitNavigatorState} from '@libs/Navigation/AppNavigator/createSplitNavigator/usePreserveSplitNavigatorState'; import getTopmostReportsSplitNavigator from '@libs/Navigation/helpers/getTopmostReportsSplitNavigator'; @@ -39,20 +39,17 @@ function BaseSidebarScreen() { }, []); useEffect(() => { - if (!!activeWorkspace || activeWorkspaceID === undefined || isLoading) { - return; - } - - // Otherwise, if the workspace is already loaded, we don't need to do anything - const topmostReport = getTopmostReportsSplitNavigator(); + const topmostReportSplit = getTopmostReportsSplitNavigator(); + const topmostReportSplitPolicyID = topmostReportSplit?.params && `policyID` in topmostReportSplit.params ? topmostReportSplit.params.policyID : undefined; + const hasWorkspaceBeenDeleted = !activeWorkspace && activeWorkspaceResult.status === 'loaded' && !!topmostReportSplitPolicyID; - if (!topmostReport) { + if (!topmostReportSplit || !hasWorkspaceBeenDeleted || isLoading) { return; } // Switching workspace to global should only be performed from the currently opened sidebar screen - const topmostReportState = topmostReport?.state ?? getPreservedSplitNavigatorState(topmostReport?.key); - const isCurrentSidebar = topmostReportState?.routes.some((route) => currentRoute.key === route.key); + const topmostReportSplitState = topmostReportSplit?.state ?? getPreservedSplitNavigatorState(topmostReportSplit?.key); + const isCurrentSidebar = topmostReportSplitState?.routes.some((route) => currentRoute.key === route.key); if (!isCurrentSidebar) { return; @@ -61,14 +58,14 @@ function BaseSidebarScreen() { const reportsSplitNavigatorWithoutPolicyID = getInitialSplitNavigatorState({name: SCREENS.HOME}, {name: SCREENS.REPORT}); Navigation.replaceWithSplitNavigator(reportsSplitNavigatorWithoutPolicyID); updateLastAccessedWorkspace(undefined); - }, [activeWorkspace, activeWorkspaceID, isLoading, currentRoute.key]); + }, [activeWorkspace, isLoading, currentRoute.key, activeWorkspaceResult]); const shouldDisplaySearch = shouldUseNarrowLayout; return ( } >