@@ -482,28 +482,43 @@ function signUpUser() {
482
482
function signInAfterTransitionFromOldDot ( transitionURL : string ) {
483
483
const [ route , queryParams ] = transitionURL . split ( '?' ) ;
484
484
485
- const { email, authToken, encryptedAuthToken, accountID, autoGeneratedLogin, autoGeneratedPassword, clearOnyxOnStart, completedHybridAppOnboarding} = Object . fromEntries (
486
- queryParams . split ( '&' ) . map ( ( param ) => {
487
- const [ key , value ] = param . split ( '=' ) ;
488
- return [ key , value ] ;
489
- } ) ,
490
- ) ;
491
-
492
- const setSessionDataAndOpenApp = ( ) => {
493
- Onyx . multiSet ( {
494
- [ ONYXKEYS . SESSION ] : { email, authToken, encryptedAuthToken : decodeURIComponent ( encryptedAuthToken ) , accountID : Number ( accountID ) } ,
495
- [ ONYXKEYS . CREDENTIALS ] : { autoGeneratedLogin, autoGeneratedPassword} ,
496
- [ ONYXKEYS . NVP_TRYNEWDOT ] : { classicRedirect : { completedHybridAppOnboarding : completedHybridAppOnboarding === 'true' } } ,
497
- } ) . then ( App . openApp ) ;
485
+ const { email, authToken, encryptedAuthToken, accountID, autoGeneratedLogin, autoGeneratedPassword, clearOnyxOnStart, completedHybridAppOnboarding, isSingleNewDotEntry, primaryLogin} =
486
+ Object . fromEntries (
487
+ queryParams . split ( '&' ) . map ( ( param ) => {
488
+ const [ key , value ] = param . split ( '=' ) ;
489
+ return [ key , value ] ;
490
+ } ) ,
491
+ ) ;
492
+
493
+ const clearOnyxForNewAccount = ( ) => {
494
+ if ( clearOnyxOnStart !== 'true' ) {
495
+ return Promise . resolve ( ) ;
496
+ }
497
+
498
+ return Onyx . clear ( KEYS_TO_PRESERVE ) ;
498
499
} ;
499
500
500
- if ( clearOnyxOnStart === 'true' ) {
501
- Onyx . clear ( KEYS_TO_PRESERVE ) . then ( setSessionDataAndOpenApp ) ;
502
- } else {
503
- setSessionDataAndOpenApp ( ) ;
504
- }
501
+ const setSessionDataAndOpenApp = new Promise < Route > ( ( resolve ) => {
502
+ clearOnyxForNewAccount ( )
503
+ . then ( ( ) =>
504
+ Onyx . multiSet ( {
505
+ [ ONYXKEYS . SESSION ] : { email, authToken, encryptedAuthToken : decodeURIComponent ( encryptedAuthToken ) , accountID : Number ( accountID ) } ,
506
+ [ ONYXKEYS . ACCOUNT ] : { primaryLogin} ,
507
+ [ ONYXKEYS . CREDENTIALS ] : { autoGeneratedLogin, autoGeneratedPassword} ,
508
+ [ ONYXKEYS . IS_SINGLE_NEW_DOT_ENTRY ] : isSingleNewDotEntry === 'true' ,
509
+ [ ONYXKEYS . NVP_TRYNEWDOT ] : { classicRedirect : { completedHybridAppOnboarding : completedHybridAppOnboarding === 'true' } } ,
510
+ } ) ,
511
+ )
512
+ . then ( App . openApp )
513
+ . catch ( ( error ) => {
514
+ Log . hmmm ( '[HybridApp] Initialization of HybridApp has failed. Forcing transition' , { error} ) ;
515
+ } )
516
+ . finally ( ( ) => {
517
+ resolve ( `${ route } ?singleNewDotEntry=${ isSingleNewDotEntry } ` as Route ) ;
518
+ } ) ;
519
+ } ) ;
505
520
506
- return route as Route ;
521
+ return setSessionDataAndOpenApp ;
507
522
}
508
523
509
524
/**
0 commit comments