@@ -2,46 +2,45 @@ import HybridAppModule from '@expensify/react-native-hybrid-app';
22import Onyx from 'react-native-onyx' ;
33import type { OnyxEntry } from 'react-native-onyx' ;
44import CONFIG from '@src/CONFIG' ;
5- import CONST from '@src/CONST' ;
65import ONYXKEYS from '@src/ONYXKEYS' ;
76import type { Credentials , HybridApp , Session , TryNewDot } from '@src/types/onyx' ;
8- import { setNewDotSignInState , setReadyToShowAuthScreens , setUseNewDotSignInPage } from './actions/HybridApp' ;
7+ import { setReadyToShowAuthScreens , setUseNewDotSignInPage } from './actions/HybridApp' ;
98import { closeReactNativeApp } from './actions/Session' ;
109import Log from './Log' ;
1110import { getCurrentUserEmail } from './Network/NetworkStore' ;
1211
1312let currentHybridApp : OnyxEntry < HybridApp > ;
1413let currentTryNewDot : OnyxEntry < TryNewDot > ;
1514let currentCredentials : OnyxEntry < Credentials > ;
15+ let currentSession : OnyxEntry < Session > ;
1616
1717Onyx . connect ( {
1818 key : ONYXKEYS . HYBRID_APP ,
1919 callback : ( hybridApp ) => {
20- handleChangeInHybridAppSignInFlow ( hybridApp , currentTryNewDot , currentCredentials ) ;
20+ handleChangeInHybridAppSignInFlow ( hybridApp , currentTryNewDot , currentCredentials , currentSession ) ;
2121 } ,
2222} ) ;
2323
2424Onyx . connect ( {
2525 key : ONYXKEYS . NVP_TRY_NEW_DOT ,
2626 callback : ( tryNewDot ) => {
27- handleChangeInHybridAppSignInFlow ( currentHybridApp , tryNewDot , currentCredentials ) ;
27+ handleChangeInHybridAppSignInFlow ( currentHybridApp , tryNewDot , currentCredentials , currentSession ) ;
2828 } ,
2929} ) ;
3030
3131Onyx . connect ( {
3232 key : ONYXKEYS . CREDENTIALS ,
3333 callback : ( credentials ) => {
3434 currentCredentials = credentials ;
35- handleChangeInHybridAppSignInFlow ( currentHybridApp , currentTryNewDot , credentials ) ;
35+ handleChangeInHybridAppSignInFlow ( currentHybridApp , currentTryNewDot , credentials , currentSession ) ;
3636 } ,
3737} ) ;
3838
39- let currentSession : OnyxEntry < Session > ;
4039Onyx . connect ( {
4140 key : ONYXKEYS . SESSION ,
4241 callback : ( session : OnyxEntry < Session > ) => {
43- if ( ! currentSession ?. authToken && session ?. authToken && currentHybridApp ?. newDotSignInState === CONST . HYBRID_APP_SIGN_IN_STATE . STARTED ) {
44- setNewDotSignInState ( CONST . HYBRID_APP_SIGN_IN_STATE . FINISHED ) ;
42+ if ( ! currentSession ?. authToken && session ?. authToken ) {
43+ handleChangeInHybridAppSignInFlow ( currentHybridApp , currentTryNewDot , currentCredentials , session ) ;
4544 }
4645 currentSession = session ;
4746 } ,
@@ -62,7 +61,7 @@ function shouldUseOldApp(tryNewDot?: TryNewDot) {
6261 return tryNewDot ?. classicRedirect ?. dismissed === true ;
6362}
6463
65- function handleChangeInHybridAppSignInFlow ( hybridApp : OnyxEntry < HybridApp > , tryNewDot : OnyxEntry < TryNewDot > , credentials : OnyxEntry < Credentials > ) {
64+ function handleChangeInHybridAppSignInFlow ( hybridApp : OnyxEntry < HybridApp > , tryNewDot : OnyxEntry < TryNewDot > , credentials : OnyxEntry < Credentials > , session : OnyxEntry < Session > ) {
6665 if ( ! CONFIG . IS_HYBRID_APP ) {
6766 return ;
6867 }
@@ -73,14 +72,14 @@ function handleChangeInHybridAppSignInFlow(hybridApp: OnyxEntry<HybridApp>, tryN
7372 return ;
7473 }
7574
76- if ( hybridApp ?. newDotSignInState === CONST . HYBRID_APP_SIGN_IN_STATE . FINISHED && tryNewDot !== undefined && ! ! credentials ?. autoGeneratedLogin && ! ! credentials ?. autoGeneratedPassword ) {
75+ if ( ! ! session ?. authToken && tryNewDot !== undefined && ! ! credentials ?. autoGeneratedLogin && ! ! credentials ?. autoGeneratedPassword ) {
7776 // It's better to not pass function directly to Log.info to avoid bugs with evaluation
7877 const shouldUseOD = shouldUseOldApp ( tryNewDot ) ;
7978 Log . info ( `[HybridApp] Performing sign-in${ shouldUseOD ? '' : ' (in background)' } on OldDot side` ) ;
8079 HybridAppModule . signInToOldDot ( {
8180 autoGeneratedLogin : credentials . autoGeneratedLogin ,
8281 autoGeneratedPassword : credentials . autoGeneratedPassword ,
83- authToken : currentSession ? .authToken ?? '' ,
82+ authToken : session . authToken ,
8483 email : getCurrentUserEmail ( ) ?? '' ,
8584 // eslint-disable-next-line rulesdir/no-default-id-values
8685 policyID : activePolicyID ?? '' ,
0 commit comments