1
1
import { NativeModules } from 'react-native' ;
2
2
import Onyx from 'react-native-onyx' ;
3
- import type { OnyxEntry , OnyxUpdate } from 'react-native-onyx' ;
3
+ import type { OnyxUpdate } from 'react-native-onyx' ;
4
4
import * as API from '@libs/API' ;
5
5
import type { AddDelegateParams , RemoveDelegateParams , UpdateDelegateRoleParams } from '@libs/API/parameters' ;
6
6
import { SIDE_EFFECT_REQUEST_COMMANDS , WRITE_COMMANDS } from '@libs/API/types' ;
7
7
import * as ErrorUtils from '@libs/ErrorUtils' ;
8
8
import Log from '@libs/Log' ;
9
9
import * as NetworkStore from '@libs/Network/NetworkStore' ;
10
+ import { getCurrentUserEmail } from '@libs/Network/NetworkStore' ;
10
11
import * as SequentialQueue from '@libs/Network/SequentialQueue' ;
11
12
import CONST from '@src/CONST' ;
12
13
import ONYXKEYS from '@src/ONYXKEYS' ;
@@ -15,7 +16,6 @@ import type Credentials from '@src/types/onyx/Credentials';
15
16
import type Response from '@src/types/onyx/Response' ;
16
17
import type Session from '@src/types/onyx/Session' ;
17
18
import { confirmReadyToOpenApp , openApp } from './App' ;
18
- import { getCurrentUserAccountID } from './Report' ;
19
19
import updateSessionAuthTokens from './Session/updateSessionAuthTokens' ;
20
20
import updateSessionUser from './Session/updateSessionUser' ;
21
21
@@ -51,14 +51,6 @@ Onyx.connect({
51
51
callback : ( value ) => ( stashedSession = value ?? { } ) ,
52
52
} ) ;
53
53
54
- let activePolicyID : OnyxEntry < string > ;
55
- Onyx . connect ( {
56
- key : ONYXKEYS . NVP_ACTIVE_POLICY_ID ,
57
- callback : ( newActivePolicyID ) => {
58
- activePolicyID = newActivePolicyID ;
59
- } ,
60
- } ) ;
61
-
62
54
const KEYS_TO_PRESERVE_DELEGATE_ACCESS = [
63
55
ONYXKEYS . NVP_TRY_FOCUS_MODE ,
64
56
ONYXKEYS . PREFERRED_THEME ,
@@ -81,8 +73,6 @@ function connect(email: string) {
81
73
Onyx . set ( ONYXKEYS . STASHED_CREDENTIALS , credentials ) ;
82
74
Onyx . set ( ONYXKEYS . STASHED_SESSION , session ) ;
83
75
84
- const previousAccountID = getCurrentUserAccountID ( ) ;
85
-
86
76
const optimisticData : OnyxUpdate [ ] = [
87
77
{
88
78
onyxMethod : Onyx . METHOD . MERGE ,
@@ -140,14 +130,6 @@ function connect(email: string) {
140
130
Onyx . update ( failureData ) ;
141
131
return ;
142
132
}
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
-
151
133
return SequentialQueue . waitForIdle ( )
152
134
. then ( ( ) => Onyx . clear ( KEYS_TO_PRESERVE_DELEGATE_ACCESS ) )
153
135
. then ( ( ) => {
@@ -156,7 +138,9 @@ function connect(email: string) {
156
138
157
139
NetworkStore . setAuthToken ( response ?. restrictedToken ?? null ) ;
158
140
confirmReadyToOpenApp ( ) ;
159
- openApp ( ) . then ( ( ) => NativeModules . HybridAppModule . switchAccount ( email , restrictedToken , policyID , String ( previousAccountID ) ) ) ;
141
+ openApp ( ) ;
142
+
143
+ NativeModules . HybridAppModule . switchAccount ( email ) ;
160
144
} ) ;
161
145
} )
162
146
. catch ( ( error ) => {
@@ -211,34 +195,22 @@ function disconnect() {
211
195
return ;
212
196
}
213
197
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 ;
221
198
return SequentialQueue . waitForIdle ( )
222
199
. then ( ( ) => Onyx . clear ( KEYS_TO_PRESERVE_DELEGATE_ACCESS ) )
223
200
. 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 ) ;
237
203
238
204
NetworkStore . setAuthToken ( response ?. authToken ?? null ) ;
239
205
206
+ Onyx . set ( ONYXKEYS . CREDENTIALS , stashedCredentials ) ;
207
+ Onyx . set ( ONYXKEYS . SESSION , stashedSession ) ;
208
+ Onyx . set ( ONYXKEYS . STASHED_CREDENTIALS , { } ) ;
209
+ Onyx . set ( ONYXKEYS . STASHED_SESSION , { } ) ;
240
210
confirmReadyToOpenApp ( ) ;
241
- openApp ( ) . then ( ( ) => NativeModules . HybridAppModule . switchAccount ( requesterEmail , authToken , '' , '' ) ) ;
211
+ openApp ( ) ;
212
+
213
+ NativeModules . HybridAppModule . switchAccount ( getCurrentUserEmail ( ) ?? '' ) ;
242
214
} ) ;
243
215
} )
244
216
. catch ( ( error ) => {
0 commit comments