@@ -6,21 +6,26 @@ import {hasCompletedGuidedSetupFlowSelector, hasCompletedHybridAppOnboardingFlow
6
6
import * as OnboardingFlow from '@userActions/Welcome/OnboardingFlow' ;
7
7
import ONYXKEYS from '@src/ONYXKEYS' ;
8
8
import ROUTES from '@src/ROUTES' ;
9
+ import isLoadingOnyxValue from '@src/types/utils/isLoadingOnyxValue' ;
9
10
10
11
/**
11
12
* Hook to handle redirection to the onboarding flow based on the user's onboarding status
12
13
*
13
14
* Warning: This hook should be used only once in the app
14
15
*/
15
16
function useOnboardingFlowRouter ( ) {
16
- const [ isOnboardingCompleted ] = useOnyx ( ONYXKEYS . NVP_ONBOARDING , {
17
+ const [ isOnboardingCompleted , isOnboardingCompletedMetadata ] = useOnyx ( ONYXKEYS . NVP_ONBOARDING , {
17
18
selector : hasCompletedGuidedSetupFlowSelector ,
18
19
} ) ;
19
- const [ isHybridAppOnboardingCompleted ] = useOnyx ( ONYXKEYS . NVP_TRYNEWDOT , {
20
+ const [ isHybridAppOnboardingCompleted , isHybridAppOnboardingCompletedMetadata ] = useOnyx ( ONYXKEYS . NVP_TRYNEWDOT , {
20
21
selector : hasCompletedHybridAppOnboardingFlowSelector ,
21
22
} ) ;
22
23
23
24
useEffect ( ( ) => {
25
+ if ( isLoadingOnyxValue ( isOnboardingCompletedMetadata , isHybridAppOnboardingCompletedMetadata ) ) {
26
+ return ;
27
+ }
28
+
24
29
if ( NativeModules . HybridAppModule ) {
25
30
// When user is transitioning from OldDot to NewDot, we usually show the explanation modal
26
31
if ( isHybridAppOnboardingCompleted === false ) {
@@ -38,7 +43,7 @@ function useOnboardingFlowRouter() {
38
43
if ( ! NativeModules . HybridAppModule && isOnboardingCompleted === false ) {
39
44
OnboardingFlow . startOnboardingFlow ( ) ;
40
45
}
41
- } , [ isOnboardingCompleted , isHybridAppOnboardingCompleted ] ) ;
46
+ } , [ isOnboardingCompleted , isHybridAppOnboardingCompleted , isOnboardingCompletedMetadata , isHybridAppOnboardingCompletedMetadata ] ) ;
42
47
43
48
return { isOnboardingCompleted, isHybridAppOnboardingCompleted} ;
44
49
}
0 commit comments