Skip to content

Commit 5a0600a

Browse files
authored
Merge pull request Expensify#89649 from apeyada/fix-89017
fix wrong navigation after adding personal bank account successfully in wallet page
2 parents ce8ff3a + 7c17985 commit 5a0600a

1 file changed

Lines changed: 28 additions & 32 deletions

File tree

src/pages/settings/Wallet/InternationalDepositAccount/InternationalDepositAccountContent.tsx

Lines changed: 28 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {useRoute} from '@react-navigation/native';
2-
import React, {useCallback, useMemo} from 'react';
2+
import React from 'react';
33
import type {OnyxEntry} from 'react-native-onyx';
44
import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator';
55
import HeaderWithBackButton from '@components/HeaderWithBackButton';
@@ -10,6 +10,7 @@ import useRootNavigationState from '@hooks/useRootNavigationState';
1010
import useSubPage from '@hooks/useSubPage';
1111
import {clearCorpayBankAccountFields} from '@libs/actions/BankAccounts';
1212
import {clearDraftValues} from '@libs/actions/FormActions';
13+
import getActiveTabName from '@libs/Navigation/helpers/getActiveTabName';
1314
import {isFullScreenName} from '@libs/Navigation/helpers/isNavigatorName';
1415
import Navigation from '@libs/Navigation/Navigation';
1516
import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types';
@@ -76,16 +77,13 @@ function InternationalDepositAccountContent({
7677
}: InternationalDepositAccountContentProps) {
7778
const {translate} = useLocalize();
7879

79-
const fieldsMap = useMemo(() => getFieldsMap(corpayFields), [corpayFields]);
80+
const fieldsMap = getFieldsMap(corpayFields);
8081

81-
const values = useMemo(
82-
() => getSubstepValues(privatePersonalDetails, corpayFields, bankAccountList, draftValues, country, fieldsMap),
83-
[privatePersonalDetails, corpayFields, bankAccountList, draftValues, country, fieldsMap],
84-
);
82+
const values = getSubstepValues(privatePersonalDetails, corpayFields, bankAccountList, draftValues, country, fieldsMap);
8583

86-
const initialAccountHolderDetailsValues = useMemo(() => getInitialPersonalDetailsValues(privatePersonalDetails), [privatePersonalDetails]);
84+
const initialAccountHolderDetailsValues = getInitialPersonalDetailsValues(privatePersonalDetails);
8785

88-
const startFrom = useMemo(() => getInitialSubstep(values, fieldsMap), [fieldsMap, values]);
86+
const startFrom = getInitialSubstep(values, fieldsMap);
8987

9088
const skipAccountTypeStep = isEmptyObject(fieldsMap[CONST.CORPAY_FIELDS.PAGE_NAME.ACCOUNT_TYPE]);
9189

@@ -95,33 +93,31 @@ function InternationalDepositAccountContent({
9593

9694
const route = useRoute<PlatformStackRouteProp<SettingsNavigatorParamList, typeof SCREENS.SETTINGS.ADD_BANK_ACCOUNT>>();
9795
const topmostFullScreenRoute = useRootNavigationState((state) => state?.routes.findLast((r) => isFullScreenName(r.name)));
96+
const activeTab = getActiveTabName(topmostFullScreenRoute);
9897

99-
const goBack = useCallback(
100-
(shouldIgnoreBackToParam = false) => {
101-
if (backTo && !shouldIgnoreBackToParam) {
102-
Navigation.goBack(backTo);
103-
return;
104-
}
105-
switch (topmostFullScreenRoute?.name) {
106-
case NAVIGATORS.SETTINGS_SPLIT_NAVIGATOR:
107-
Navigation.goBack(ROUTES.SETTINGS_WALLET);
108-
break;
109-
case NAVIGATORS.REPORTS_SPLIT_NAVIGATOR:
110-
Navigation.closeRHPFlow();
111-
break;
112-
default:
113-
Navigation.goBack();
114-
break;
115-
}
116-
},
117-
[backTo, topmostFullScreenRoute?.name],
118-
);
98+
const goBack = (shouldIgnoreBackToParam = false) => {
99+
if (backTo && !shouldIgnoreBackToParam) {
100+
Navigation.goBack(backTo);
101+
return;
102+
}
103+
switch (activeTab) {
104+
case NAVIGATORS.SETTINGS_SPLIT_NAVIGATOR:
105+
Navigation.goBack(ROUTES.SETTINGS_WALLET);
106+
break;
107+
case NAVIGATORS.REPORTS_SPLIT_NAVIGATOR:
108+
Navigation.closeRHPFlow();
109+
break;
110+
default:
111+
Navigation.goBack();
112+
break;
113+
}
114+
};
119115

120-
const handleFinishStep = useCallback(() => {
116+
const handleFinishStep = () => {
121117
clearDraftValues(ONYXKEYS.FORMS.INTERNATIONAL_BANK_ACCOUNT_FORM);
122118
clearCorpayBankAccountFields();
123119
goBack(backTo?.includes(ROUTES.SETTINGS_BANK_ACCOUNT_PURPOSE));
124-
}, [goBack, backTo]);
120+
};
125121

126122
const {CurrentPage, isEditing, nextPage, prevPage, pageIndex, moveTo, isRedirecting} = useSubPage<CustomSubPageProps>({
127123
pages,
@@ -155,13 +151,13 @@ function InternationalDepositAccountContent({
155151

156152
useAndroidBackButtonHandler(handleBackButtonPress);
157153

158-
const handleNextScreen = useCallback(() => {
154+
const handleNextScreen = () => {
159155
if (isEditing) {
160156
goBackToConfirmStep();
161157
return;
162158
}
163159
nextPage();
164-
}, [isEditing, goBackToConfirmStep, nextPage]);
160+
};
165161

166162
return (
167163
<ScreenWrapper

0 commit comments

Comments
 (0)