diff --git a/src/libs/Navigation/AppNavigator/createSplitNavigator/usePreserveNavigatorState.ts b/src/libs/Navigation/AppNavigator/createSplitNavigator/usePreserveNavigatorState.ts index 4836ab2f8464..8d8a90b76c75 100644 --- a/src/libs/Navigation/AppNavigator/createSplitNavigator/usePreserveNavigatorState.ts +++ b/src/libs/Navigation/AppNavigator/createSplitNavigator/usePreserveNavigatorState.ts @@ -1,5 +1,6 @@ import type {NavigationState, ParamListBase, RouteProp, StackNavigationState} from '@react-navigation/native'; import {useEffect} from 'react'; +import NAVIGATORS from '@src/NAVIGATORS'; const preservedNavigatorStates: Record> = {}; @@ -13,6 +14,14 @@ const cleanPreservedNavigatorStates = (state: NavigationState) => { } }; +const clearPreservedSearchNavigatorStates = () => { + for (const key of Object.keys(preservedNavigatorStates)) { + if (key.startsWith(NAVIGATORS.SEARCH_FULLSCREEN_NAVIGATOR)) { + delete preservedNavigatorStates[key]; + } + } +}; + const getPreservedNavigatorState = (key: string) => preservedNavigatorStates[key]; function usePreserveNavigatorState(state: StackNavigationState, route: RouteProp | undefined) { @@ -26,4 +35,4 @@ function usePreserveNavigatorState(state: StackNavigationState, r export default usePreserveNavigatorState; -export {getPreservedNavigatorState, cleanPreservedNavigatorStates}; +export {getPreservedNavigatorState, cleanPreservedNavigatorStates, clearPreservedSearchNavigatorStates}; diff --git a/src/libs/actions/Delegate.ts b/src/libs/actions/Delegate.ts index 46b28afc7fd8..563378dd04f2 100644 --- a/src/libs/actions/Delegate.ts +++ b/src/libs/actions/Delegate.ts @@ -6,6 +6,7 @@ import type {AddDelegateParams as APIAddDelegateParams, RemoveDelegateParams as import {READ_COMMANDS, SIDE_EFFECT_REQUEST_COMMANDS, WRITE_COMMANDS} from '@libs/API/types'; import * as ErrorUtils from '@libs/ErrorUtils'; import Log from '@libs/Log'; +import {clearPreservedSearchNavigatorStates} from '@libs/Navigation/AppNavigator/createSplitNavigator/usePreserveNavigatorState'; import * as NetworkStore from '@libs/Network/NetworkStore'; import * as SequentialQueue from '@libs/Network/SequentialQueue'; import CONFIG from '@src/CONFIG'; @@ -187,6 +188,7 @@ function connect({email, delegatedAccess, credentials, session, activePolicyID, Onyx.update(failureData); return; } + clearPreservedSearchNavigatorStates(); const restrictedToken = response.restrictedToken; const policyID = activePolicyID; @@ -272,6 +274,8 @@ function disconnect({stashedCredentials, stashedSession}: DisconnectParams) { return; } + clearPreservedSearchNavigatorStates(); + const requesterEmail = response.requesterEmail; const authToken = response.authToken; return SequentialQueue.waitForIdle()