diff --git a/src/pages/settings/Wallet/InternationalDepositAccount/InternationalDepositAccountContent.tsx b/src/pages/settings/Wallet/InternationalDepositAccount/InternationalDepositAccountContent.tsx index 9acd13d716c8..faeaf152865c 100644 --- a/src/pages/settings/Wallet/InternationalDepositAccount/InternationalDepositAccountContent.tsx +++ b/src/pages/settings/Wallet/InternationalDepositAccount/InternationalDepositAccountContent.tsx @@ -1,5 +1,5 @@ import {useRoute} from '@react-navigation/native'; -import React, {useCallback, useMemo} from 'react'; +import React from 'react'; import type {OnyxEntry} from 'react-native-onyx'; import FullScreenLoadingIndicator from '@components/FullscreenLoadingIndicator'; import HeaderWithBackButton from '@components/HeaderWithBackButton'; @@ -10,6 +10,7 @@ import useRootNavigationState from '@hooks/useRootNavigationState'; import useSubPage from '@hooks/useSubPage'; import {clearCorpayBankAccountFields} from '@libs/actions/BankAccounts'; import {clearDraftValues} from '@libs/actions/FormActions'; +import getActiveTabName from '@libs/Navigation/helpers/getActiveTabName'; import {isFullScreenName} from '@libs/Navigation/helpers/isNavigatorName'; import Navigation from '@libs/Navigation/Navigation'; import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types'; @@ -76,16 +77,13 @@ function InternationalDepositAccountContent({ }: InternationalDepositAccountContentProps) { const {translate} = useLocalize(); - const fieldsMap = useMemo(() => getFieldsMap(corpayFields), [corpayFields]); + const fieldsMap = getFieldsMap(corpayFields); - const values = useMemo( - () => getSubstepValues(privatePersonalDetails, corpayFields, bankAccountList, draftValues, country, fieldsMap), - [privatePersonalDetails, corpayFields, bankAccountList, draftValues, country, fieldsMap], - ); + const values = getSubstepValues(privatePersonalDetails, corpayFields, bankAccountList, draftValues, country, fieldsMap); - const initialAccountHolderDetailsValues = useMemo(() => getInitialPersonalDetailsValues(privatePersonalDetails), [privatePersonalDetails]); + const initialAccountHolderDetailsValues = getInitialPersonalDetailsValues(privatePersonalDetails); - const startFrom = useMemo(() => getInitialSubstep(values, fieldsMap), [fieldsMap, values]); + const startFrom = getInitialSubstep(values, fieldsMap); const skipAccountTypeStep = isEmptyObject(fieldsMap[CONST.CORPAY_FIELDS.PAGE_NAME.ACCOUNT_TYPE]); @@ -95,33 +93,31 @@ function InternationalDepositAccountContent({ const route = useRoute>(); const topmostFullScreenRoute = useRootNavigationState((state) => state?.routes.findLast((r) => isFullScreenName(r.name))); + const activeTab = getActiveTabName(topmostFullScreenRoute); - const goBack = useCallback( - (shouldIgnoreBackToParam = false) => { - if (backTo && !shouldIgnoreBackToParam) { - Navigation.goBack(backTo); - return; - } - switch (topmostFullScreenRoute?.name) { - case NAVIGATORS.SETTINGS_SPLIT_NAVIGATOR: - Navigation.goBack(ROUTES.SETTINGS_WALLET); - break; - case NAVIGATORS.REPORTS_SPLIT_NAVIGATOR: - Navigation.closeRHPFlow(); - break; - default: - Navigation.goBack(); - break; - } - }, - [backTo, topmostFullScreenRoute?.name], - ); + const goBack = (shouldIgnoreBackToParam = false) => { + if (backTo && !shouldIgnoreBackToParam) { + Navigation.goBack(backTo); + return; + } + switch (activeTab) { + case NAVIGATORS.SETTINGS_SPLIT_NAVIGATOR: + Navigation.goBack(ROUTES.SETTINGS_WALLET); + break; + case NAVIGATORS.REPORTS_SPLIT_NAVIGATOR: + Navigation.closeRHPFlow(); + break; + default: + Navigation.goBack(); + break; + } + }; - const handleFinishStep = useCallback(() => { + const handleFinishStep = () => { clearDraftValues(ONYXKEYS.FORMS.INTERNATIONAL_BANK_ACCOUNT_FORM); clearCorpayBankAccountFields(); goBack(backTo?.includes(ROUTES.SETTINGS_BANK_ACCOUNT_PURPOSE)); - }, [goBack, backTo]); + }; const {CurrentPage, isEditing, nextPage, prevPage, pageIndex, moveTo, isRedirecting} = useSubPage({ pages, @@ -155,13 +151,13 @@ function InternationalDepositAccountContent({ useAndroidBackButtonHandler(handleBackButtonPress); - const handleNextScreen = useCallback(() => { + const handleNextScreen = () => { if (isEditing) { goBackToConfirmStep(); return; } nextPage(); - }, [isEditing, goBackToConfirmStep, nextPage]); + }; return (