diff --git a/src/hooks/useOnboardingFlow.ts b/src/hooks/useOnboardingFlow.ts index 8bbb7d03d439a..c67e51c278a13 100644 --- a/src/hooks/useOnboardingFlow.ts +++ b/src/hooks/useOnboardingFlow.ts @@ -78,17 +78,21 @@ function useOnboardingFlowRouter() { // Should be removed once Test Drive modal route has its own navigation guard // Details: https://github.com/Expensify/App/pull/79898 if (hasCompletedGuidedSetupFlowSelector(onboardingValues) && onboardingValues?.testDriveModalDismissed === false) { - Navigation.setNavigationActionToMicrotaskQueue(() => { - Log.info('[Onboarding] User has not completed the guided setup flow, starting onboarding flow from test drive modal'); - startOnboardingFlow({ - onboardingInitialPath: ROUTES.TEST_DRIVE_MODAL_ROOT.route, - isUserFromPublicDomain: false, - hasAccessiblePolicies: false, - currentOnboardingCompanySize: undefined, - currentOnboardingPurposeSelected: undefined, - onboardingValues, + const navigationState = navigationRef.getRootState(); + const lastRoute = navigationState.routes.at(-1); + if (lastRoute?.name !== NAVIGATORS.TEST_DRIVE_MODAL_NAVIGATOR) { + Navigation.setNavigationActionToMicrotaskQueue(() => { + Log.info('[Onboarding] User has not completed the guided setup flow, starting onboarding flow from test drive modal'); + startOnboardingFlow({ + onboardingInitialPath: ROUTES.TEST_DRIVE_MODAL_ROOT.route, + isUserFromPublicDomain: false, + hasAccessiblePolicies: false, + currentOnboardingCompanySize: undefined, + currentOnboardingPurposeSelected: undefined, + onboardingValues, + }); }); - }); + } } if (hasBeenAddedToNudgeMigration && !isProductTrainingElementDismissed('migratedUserWelcomeModal', dismissedProductTraining)) { const navigationState = navigationRef.getRootState(); diff --git a/src/libs/Navigation/AppNavigator/AuthScreens.tsx b/src/libs/Navigation/AppNavigator/AuthScreens.tsx index fedbeeb63ff7c..60745d320a294 100644 --- a/src/libs/Navigation/AppNavigator/AuthScreens.tsx +++ b/src/libs/Navigation/AppNavigator/AuthScreens.tsx @@ -668,6 +668,7 @@ function AuthScreens() { name={NAVIGATORS.TEST_DRIVE_MODAL_NAVIGATOR} options={rootNavigatorScreenOptions.basicModalNavigator} component={TestDriveModalNavigator} + listeners={modalScreenListeners} />