11import { NativeModules } from 'react-native' ;
22import Onyx from 'react-native-onyx' ;
3- import type { OnyxEntry , OnyxUpdate } from 'react-native-onyx' ;
3+ import type { OnyxUpdate } from 'react-native-onyx' ;
44import * as API from '@libs/API' ;
55import type { AddDelegateParams , RemoveDelegateParams , UpdateDelegateRoleParams } from '@libs/API/parameters' ;
66import { SIDE_EFFECT_REQUEST_COMMANDS , WRITE_COMMANDS } from '@libs/API/types' ;
77import * as ErrorUtils from '@libs/ErrorUtils' ;
88import Log from '@libs/Log' ;
99import * as NetworkStore from '@libs/Network/NetworkStore' ;
10+ import { getCurrentUserEmail } from '@libs/Network/NetworkStore' ;
1011import * as SequentialQueue from '@libs/Network/SequentialQueue' ;
1112import CONST from '@src/CONST' ;
1213import ONYXKEYS from '@src/ONYXKEYS' ;
@@ -15,7 +16,6 @@ import type Credentials from '@src/types/onyx/Credentials';
1516import type Response from '@src/types/onyx/Response' ;
1617import type Session from '@src/types/onyx/Session' ;
1718import { confirmReadyToOpenApp , openApp } from './App' ;
18- import { getCurrentUserAccountID } from './Report' ;
1919import updateSessionAuthTokens from './Session/updateSessionAuthTokens' ;
2020import updateSessionUser from './Session/updateSessionUser' ;
2121
@@ -51,14 +51,6 @@ Onyx.connect({
5151 callback : ( value ) => ( stashedSession = value ?? { } ) ,
5252} ) ;
5353
54- let activePolicyID : OnyxEntry < string > ;
55- Onyx . connect ( {
56- key : ONYXKEYS . NVP_ACTIVE_POLICY_ID ,
57- callback : ( newActivePolicyID ) => {
58- activePolicyID = newActivePolicyID ;
59- } ,
60- } ) ;
61-
6254const KEYS_TO_PRESERVE_DELEGATE_ACCESS = [
6355 ONYXKEYS . NVP_TRY_FOCUS_MODE ,
6456 ONYXKEYS . PREFERRED_THEME ,
@@ -81,8 +73,6 @@ function connect(email: string) {
8173 Onyx . set ( ONYXKEYS . STASHED_CREDENTIALS , credentials ) ;
8274 Onyx . set ( ONYXKEYS . STASHED_SESSION , session ) ;
8375
84- const previousAccountID = getCurrentUserAccountID ( ) ;
85-
8676 const optimisticData : OnyxUpdate [ ] = [
8777 {
8878 onyxMethod : Onyx . METHOD . MERGE ,
@@ -140,14 +130,6 @@ function connect(email: string) {
140130 Onyx . update ( failureData ) ;
141131 return ;
142132 }
143- if ( ! activePolicyID ) {
144- Log . alert ( '[Delegate] Unable to access activePolicyID' ) ;
145- Onyx . update ( failureData ) ;
146- return ;
147- }
148- const restrictedToken = response . restrictedToken ;
149- const policyID = activePolicyID ;
150-
151133 return SequentialQueue . waitForIdle ( )
152134 . then ( ( ) => Onyx . clear ( KEYS_TO_PRESERVE_DELEGATE_ACCESS ) )
153135 . then ( ( ) => {
@@ -156,7 +138,9 @@ function connect(email: string) {
156138
157139 NetworkStore . setAuthToken ( response ?. restrictedToken ?? null ) ;
158140 confirmReadyToOpenApp ( ) ;
159- openApp ( ) . then ( ( ) => NativeModules . HybridAppModule . switchAccount ( email , restrictedToken , policyID , String ( previousAccountID ) ) ) ;
141+ openApp ( ) ;
142+
143+ NativeModules . HybridAppModule . switchAccount ( email ) ;
160144 } ) ;
161145 } )
162146 . catch ( ( error ) => {
@@ -211,34 +195,22 @@ function disconnect() {
211195 return ;
212196 }
213197
214- if ( ! response ?. requesterID || ! response ?. requesterEmail ) {
215- Log . alert ( '[Delegate] No requester data returned while disconnecting as a delegate' ) ;
216- return ;
217- }
218-
219- const requesterEmail = response . requesterEmail ;
220- const authToken = response . authToken ;
221198 return SequentialQueue . waitForIdle ( )
222199 . then ( ( ) => Onyx . clear ( KEYS_TO_PRESERVE_DELEGATE_ACCESS ) )
223200 . then ( ( ) => {
224- Onyx . set ( ONYXKEYS . CREDENTIALS , {
225- ...stashedCredentials ,
226- accountID : response . requesterID ,
227- } ) ;
228- Onyx . set ( ONYXKEYS . SESSION , {
229- ...stashedSession ,
230- accountID : response . requesterID ,
231- email : requesterEmail ,
232- authToken,
233- encryptedAuthToken : response . encryptedAuthToken ,
234- } ) ;
235- Onyx . set ( ONYXKEYS . STASHED_CREDENTIALS , { } ) ;
236- Onyx . set ( ONYXKEYS . STASHED_SESSION , { } ) ;
201+ // Update authToken in Onyx and in our local variables so that API requests will use the new authToken
202+ updateSessionAuthTokens ( response ?. authToken , response ?. encryptedAuthToken ) ;
237203
238204 NetworkStore . setAuthToken ( response ?. authToken ?? null ) ;
239205
206+ Onyx . set ( ONYXKEYS . CREDENTIALS , stashedCredentials ) ;
207+ Onyx . set ( ONYXKEYS . SESSION , stashedSession ) ;
208+ Onyx . set ( ONYXKEYS . STASHED_CREDENTIALS , { } ) ;
209+ Onyx . set ( ONYXKEYS . STASHED_SESSION , { } ) ;
240210 confirmReadyToOpenApp ( ) ;
241- openApp ( ) . then ( ( ) => NativeModules . HybridAppModule . switchAccount ( requesterEmail , authToken , '' , '' ) ) ;
211+ openApp ( ) ;
212+
213+ NativeModules . HybridAppModule . switchAccount ( getCurrentUserEmail ( ) ?? '' ) ;
242214 } ) ;
243215 } )
244216 . catch ( ( error ) => {
0 commit comments