diff --git a/src/components/Navigation/NavigationTabBar/index.tsx b/src/components/Navigation/NavigationTabBar/index.tsx index 0d81fb9c3e1c..05a98ebd9416 100644 --- a/src/components/Navigation/NavigationTabBar/index.tsx +++ b/src/components/Navigation/NavigationTabBar/index.tsx @@ -1,3 +1,4 @@ +import {findFocusedRoute} from '@react-navigation/native'; import React, {memo, useCallback, useEffect, useState} from 'react'; import {View} from 'react-native'; import {useOnyx} from 'react-native-onyx'; @@ -15,6 +16,7 @@ import useLocalize from '@hooks/useLocalize'; import useResponsiveLayout from '@hooks/useResponsiveLayout'; import {useSidebarOrderedReports} from '@hooks/useSidebarOrderedReports'; import useStyleUtils from '@hooks/useStyleUtils'; +import useSubscriptionPlan from '@hooks/useSubscriptionPlan'; import useTheme from '@hooks/useTheme'; import useThemeStyles from '@hooks/useThemeStyles'; import useWorkspacesTabIndicatorStatus from '@hooks/useWorkspacesTabIndicatorStatus'; @@ -57,6 +59,7 @@ function NavigationTabBar({selectedTab, isTooltipAllowed = false, isTopLevelBar const {translate} = useLocalize(); const {indicatorColor: workspacesTabIndicatorColor, status: workspacesTabIndicatorStatus} = useWorkspacesTabIndicatorStatus(); const {orderedReports} = useSidebarOrderedReports(); + const subscriptionPlan = useSubscriptionPlan(); const [account] = useOnyx(ONYXKEYS.ACCOUNT, {canBeMissing: false}); const [reportAttributes] = useOnyx(ONYXKEYS.DERIVED.REPORT_ATTRIBUTES, {selector: (value) => value?.reports, canBeMissing: true}); const {shouldUseNarrowLayout} = useResponsiveLayout(); @@ -126,6 +129,11 @@ function NavigationTabBar({selectedTab, isTooltipAllowed = false, isTopLevelBar interceptAnonymousUser(() => { const settingsTabState = getSettingsTabStateFromSessionStorage(); if (settingsTabState && !shouldUseNarrowLayout) { + const stateRoute = findFocusedRoute(settingsTabState); + if (!subscriptionPlan && stateRoute?.name === SCREENS.SETTINGS.SUBSCRIPTION.ROOT) { + Navigation.navigate(ROUTES.SETTINGS_PROFILE.route); + return; + } const lastVisitedSettingsRoute = getLastVisitedTabPath(settingsTabState); if (lastVisitedSettingsRoute) { Navigation.navigate(lastVisitedSettingsRoute); @@ -134,7 +142,7 @@ function NavigationTabBar({selectedTab, isTooltipAllowed = false, isTopLevelBar } Navigation.navigate(ROUTES.SETTINGS); }); - }, [selectedTab, shouldUseNarrowLayout]); + }, [selectedTab, subscriptionPlan, shouldUseNarrowLayout]); /** * The settings tab is related to SettingsSplitNavigator and WorkspaceSplitNavigator.