Skip to content

Commit caa6b29

Browse files
committed
Fix duplicate migrated user modal
1 parent 0f16811 commit caa6b29

1 file changed

Lines changed: 12 additions & 5 deletions

File tree

src/hooks/useOnboardingFlow.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@ import {useEffect, useRef} from 'react';
22
import {InteractionManager} from 'react-native';
33
import {startOnboardingFlow} from '@libs/actions/Welcome/OnboardingFlow';
44
import getCurrentUrl from '@libs/Navigation/currentUrl';
5-
import Navigation from '@libs/Navigation/Navigation';
5+
import Navigation, {navigationRef} from '@libs/Navigation/Navigation';
66
import {hasCompletedGuidedSetupFlowSelector, tryNewDotOnyxSelector} from '@libs/onboardingSelectors';
77
import {buildCannedSearchQuery} from '@libs/SearchQueryUtils';
88
import {isLoggingInAsNewUser} from '@libs/SessionUtils';
99
import isProductTrainingElementDismissed from '@libs/TooltipUtils';
1010
import CONFIG from '@src/CONFIG';
11+
import NAVIGATORS from '@src/NAVIGATORS';
1112
import ONYXKEYS from '@src/ONYXKEYS';
1213
import ROUTES from '@src/ROUTES';
1314
import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue';
@@ -61,11 +62,17 @@ function useOnboardingFlowRouter() {
6162
if (CONFIG.IS_HYBRID_APP && isLoadingOnyxValue(isSingleNewDotEntryMetadata)) {
6263
return;
6364
}
65+
6466
if (hasBeenAddedToNudgeMigration && !isProductTrainingElementDismissed('migratedUserWelcomeModal', dismissedProductTraining)) {
65-
const defaultCannedQuery = buildCannedSearchQuery();
66-
const query = defaultCannedQuery;
67-
Navigation.navigate(ROUTES.SEARCH_ROOT.getRoute({query}));
68-
Navigation.navigate(ROUTES.MIGRATED_USER_WELCOME_MODAL.getRoute(true));
67+
const navigationState = navigationRef.getRootState();
68+
const lastRoute = navigationState.routes.at(-1);
69+
// Prevent duplicate navigation if the migrated user modal is already shown.
70+
if (lastRoute?.name !== NAVIGATORS.MIGRATED_USER_MODAL_NAVIGATOR) {
71+
const defaultCannedQuery = buildCannedSearchQuery();
72+
const query = defaultCannedQuery;
73+
Navigation.navigate(ROUTES.SEARCH_ROOT.getRoute({query}));
74+
Navigation.navigate(ROUTES.MIGRATED_USER_WELCOME_MODAL.getRoute(true));
75+
}
6976
return;
7077
}
7178

0 commit comments

Comments
 (0)