Skip to content

Commit 4e11f41

Browse files
authored
Merge pull request #39753 from bernhardoj/fix/39710-options-data-cache-is-persisted-after-log-out
Fix report and personal detail options are persisted after switching account
2 parents 6ab0b2d + 2536122 commit 4e11f41

File tree

2 files changed

+127
-126
lines changed

2 files changed

+127
-126
lines changed

src/App.tsx

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import HTMLEngineProvider from './components/HTMLEngineProvider';
1616
import InitialURLContextProvider from './components/InitialURLContextProvider';
1717
import {LocaleContextProvider} from './components/LocaleContextProvider';
1818
import OnyxProvider from './components/OnyxProvider';
19-
import OptionsListContextProvider from './components/OptionListContextProvider';
2019
import PopoverContextProvider from './components/PopoverProvider';
2120
import SafeArea from './components/SafeArea';
2221
import ScrollOffsetContextProvider from './components/ScrollOffsetContextProvider';
@@ -83,7 +82,6 @@ function App({url}: AppProps) {
8382
FullScreenContextProvider,
8483
VolumeContextProvider,
8584
VideoPopoverMenuContextProvider,
86-
OptionsListContextProvider,
8785
]}
8886
>
8987
<CustomStatusBarAndBackground />

src/libs/Navigation/AppNavigator/AuthScreens.tsx

Lines changed: 127 additions & 124 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React, {memo, useEffect, useMemo, useRef} from 'react';
22
import {View} from 'react-native';
33
import type {OnyxEntry} from 'react-native-onyx';
44
import Onyx, {withOnyx} from 'react-native-onyx';
5+
import OptionsListContextProvider from '@components/OptionListContextProvider';
56
import useOnboardingLayout from '@hooks/useOnboardingLayout';
67
import useStyleUtils from '@hooks/useStyleUtils';
78
import useThemeStyles from '@hooks/useThemeStyles';
@@ -266,130 +267,132 @@ function AuthScreens({session, lastOpenedPublicRoomID, initialLastUpdateIDApplie
266267
}, []);
267268

268269
return (
269-
<View style={styles.rootNavigatorContainerStyles(isSmallScreenWidth)}>
270-
<RootStack.Navigator isSmallScreenWidth={isSmallScreenWidth}>
271-
<RootStack.Screen
272-
name={NAVIGATORS.BOTTOM_TAB_NAVIGATOR}
273-
options={screenOptions.bottomTab}
274-
component={BottomTabNavigator}
275-
/>
276-
<RootStack.Screen
277-
name={NAVIGATORS.CENTRAL_PANE_NAVIGATOR}
278-
options={screenOptions.centralPaneNavigator}
279-
component={CentralPaneNavigator}
280-
/>
281-
<RootStack.Screen
282-
name={SCREENS.VALIDATE_LOGIN}
283-
options={{
284-
...screenOptions.fullScreen,
285-
headerShown: false,
286-
title: 'New Expensify',
287-
}}
288-
getComponent={loadValidateLoginPage}
289-
/>
290-
<RootStack.Screen
291-
name={SCREENS.TRANSITION_BETWEEN_APPS}
292-
options={defaultScreenOptions}
293-
getComponent={loadLogOutPreviousUserPage}
294-
/>
295-
<RootStack.Screen
296-
name={SCREENS.CONCIERGE}
297-
options={defaultScreenOptions}
298-
getComponent={loadConciergePage}
299-
/>
300-
<RootStack.Screen
301-
name={SCREENS.REPORT_ATTACHMENTS}
302-
options={{
303-
headerShown: false,
304-
presentation: 'transparentModal',
305-
}}
306-
getComponent={loadReportAttachments}
307-
listeners={modalScreenListeners}
308-
/>
309-
<RootStack.Screen
310-
name={SCREENS.PROFILE_AVATAR}
311-
options={{
312-
headerShown: false,
313-
presentation: 'transparentModal',
314-
}}
315-
getComponent={loadProfileAvatar}
316-
listeners={modalScreenListeners}
317-
/>
318-
<RootStack.Screen
319-
name={SCREENS.WORKSPACE_AVATAR}
320-
options={{
321-
headerShown: false,
322-
presentation: 'transparentModal',
323-
}}
324-
getComponent={loadWorkspaceAvatar}
325-
listeners={modalScreenListeners}
326-
/>
327-
<RootStack.Screen
328-
name={SCREENS.REPORT_AVATAR}
329-
options={{
330-
headerShown: false,
331-
presentation: 'transparentModal',
332-
}}
333-
getComponent={loadReportAvatar}
334-
listeners={modalScreenListeners}
335-
/>
336-
<RootStack.Screen
337-
name={SCREENS.NOT_FOUND}
338-
options={screenOptions.fullScreen}
339-
component={NotFoundPage}
340-
/>
341-
<RootStack.Screen
342-
name={NAVIGATORS.RIGHT_MODAL_NAVIGATOR}
343-
options={screenOptions.rightModalNavigator}
344-
component={RightModalNavigator}
345-
listeners={modalScreenListeners}
346-
/>
347-
<RootStack.Screen
348-
name={NAVIGATORS.FULL_SCREEN_NAVIGATOR}
349-
options={screenOptions.fullScreen}
350-
component={FullScreenNavigator}
351-
/>
352-
<RootStack.Screen
353-
name={NAVIGATORS.LEFT_MODAL_NAVIGATOR}
354-
options={screenOptions.leftModalNavigator}
355-
component={LeftModalNavigator}
356-
listeners={modalScreenListeners}
357-
/>
358-
<RootStack.Screen
359-
name={SCREENS.DESKTOP_SIGN_IN_REDIRECT}
360-
options={screenOptions.fullScreen}
361-
component={DesktopSignInRedirectPage}
362-
/>
363-
<RootStack.Screen
364-
name={NAVIGATORS.WELCOME_VIDEO_MODAL_NAVIGATOR}
365-
options={onboardingScreenOptions}
366-
component={WelcomeVideoModalNavigator}
367-
/>
368-
<RootStack.Screen
369-
name={NAVIGATORS.ONBOARDING_MODAL_NAVIGATOR}
370-
options={onboardingScreenOptions}
371-
component={OnboardingModalNavigator}
372-
/>
373-
<RootStack.Screen
374-
name={SCREENS.WORKSPACE_JOIN_USER}
375-
options={{
376-
headerShown: false,
377-
presentation: 'transparentModal',
378-
}}
379-
listeners={modalScreenListeners}
380-
getComponent={loadWorkspaceJoinUser}
381-
/>
382-
<RootStack.Screen
383-
name={SCREENS.TRANSACTION_RECEIPT}
384-
options={{
385-
headerShown: false,
386-
presentation: 'transparentModal',
387-
}}
388-
getComponent={loadReceiptView}
389-
listeners={modalScreenListeners}
390-
/>
391-
</RootStack.Navigator>
392-
</View>
270+
<OptionsListContextProvider>
271+
<View style={styles.rootNavigatorContainerStyles(isSmallScreenWidth)}>
272+
<RootStack.Navigator isSmallScreenWidth={isSmallScreenWidth}>
273+
<RootStack.Screen
274+
name={NAVIGATORS.BOTTOM_TAB_NAVIGATOR}
275+
options={screenOptions.bottomTab}
276+
component={BottomTabNavigator}
277+
/>
278+
<RootStack.Screen
279+
name={NAVIGATORS.CENTRAL_PANE_NAVIGATOR}
280+
options={screenOptions.centralPaneNavigator}
281+
component={CentralPaneNavigator}
282+
/>
283+
<RootStack.Screen
284+
name={SCREENS.VALIDATE_LOGIN}
285+
options={{
286+
...screenOptions.fullScreen,
287+
headerShown: false,
288+
title: 'New Expensify',
289+
}}
290+
getComponent={loadValidateLoginPage}
291+
/>
292+
<RootStack.Screen
293+
name={SCREENS.TRANSITION_BETWEEN_APPS}
294+
options={defaultScreenOptions}
295+
getComponent={loadLogOutPreviousUserPage}
296+
/>
297+
<RootStack.Screen
298+
name={SCREENS.CONCIERGE}
299+
options={defaultScreenOptions}
300+
getComponent={loadConciergePage}
301+
/>
302+
<RootStack.Screen
303+
name={SCREENS.REPORT_ATTACHMENTS}
304+
options={{
305+
headerShown: false,
306+
presentation: 'transparentModal',
307+
}}
308+
getComponent={loadReportAttachments}
309+
listeners={modalScreenListeners}
310+
/>
311+
<RootStack.Screen
312+
name={SCREENS.PROFILE_AVATAR}
313+
options={{
314+
headerShown: false,
315+
presentation: 'transparentModal',
316+
}}
317+
getComponent={loadProfileAvatar}
318+
listeners={modalScreenListeners}
319+
/>
320+
<RootStack.Screen
321+
name={SCREENS.WORKSPACE_AVATAR}
322+
options={{
323+
headerShown: false,
324+
presentation: 'transparentModal',
325+
}}
326+
getComponent={loadWorkspaceAvatar}
327+
listeners={modalScreenListeners}
328+
/>
329+
<RootStack.Screen
330+
name={SCREENS.REPORT_AVATAR}
331+
options={{
332+
headerShown: false,
333+
presentation: 'transparentModal',
334+
}}
335+
getComponent={loadReportAvatar}
336+
listeners={modalScreenListeners}
337+
/>
338+
<RootStack.Screen
339+
name={SCREENS.NOT_FOUND}
340+
options={screenOptions.fullScreen}
341+
component={NotFoundPage}
342+
/>
343+
<RootStack.Screen
344+
name={NAVIGATORS.RIGHT_MODAL_NAVIGATOR}
345+
options={screenOptions.rightModalNavigator}
346+
component={RightModalNavigator}
347+
listeners={modalScreenListeners}
348+
/>
349+
<RootStack.Screen
350+
name={NAVIGATORS.FULL_SCREEN_NAVIGATOR}
351+
options={screenOptions.fullScreen}
352+
component={FullScreenNavigator}
353+
/>
354+
<RootStack.Screen
355+
name={NAVIGATORS.LEFT_MODAL_NAVIGATOR}
356+
options={screenOptions.leftModalNavigator}
357+
component={LeftModalNavigator}
358+
listeners={modalScreenListeners}
359+
/>
360+
<RootStack.Screen
361+
name={SCREENS.DESKTOP_SIGN_IN_REDIRECT}
362+
options={screenOptions.fullScreen}
363+
component={DesktopSignInRedirectPage}
364+
/>
365+
<RootStack.Screen
366+
name={NAVIGATORS.WELCOME_VIDEO_MODAL_NAVIGATOR}
367+
options={onboardingScreenOptions}
368+
component={WelcomeVideoModalNavigator}
369+
/>
370+
<RootStack.Screen
371+
name={NAVIGATORS.ONBOARDING_MODAL_NAVIGATOR}
372+
options={onboardingScreenOptions}
373+
component={OnboardingModalNavigator}
374+
/>
375+
<RootStack.Screen
376+
name={SCREENS.WORKSPACE_JOIN_USER}
377+
options={{
378+
headerShown: false,
379+
presentation: 'transparentModal',
380+
}}
381+
listeners={modalScreenListeners}
382+
getComponent={loadWorkspaceJoinUser}
383+
/>
384+
<RootStack.Screen
385+
name={SCREENS.TRANSACTION_RECEIPT}
386+
options={{
387+
headerShown: false,
388+
presentation: 'transparentModal',
389+
}}
390+
getComponent={loadReceiptView}
391+
listeners={modalScreenListeners}
392+
/>
393+
</RootStack.Navigator>
394+
</View>
395+
</OptionsListContextProvider>
393396
);
394397
}
395398

0 commit comments

Comments
 (0)