Skip to content

Commit c50850b

Browse files
authored
Merge pull request Expensify#86509 from huult/83842-migrate-workspace-xero
2 parents 4b173be + 1beceb9 commit c50850b

11 files changed

Lines changed: 61 additions & 82 deletions

File tree

src/ROUTES.ts

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,18 @@ const DYNAMIC_ROUTES = {
111111
path: 'visibility',
112112
entryScreens: [SCREENS.REPORT_SETTINGS.ROOT],
113113
},
114+
POLICY_ACCOUNTING_XERO_EXPORT_BANK_ACCOUNT_SELECT: {
115+
path: 'bank-account-select',
116+
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT],
117+
},
118+
POLICY_ACCOUNTING_XERO_BILL_STATUS_SELECTOR: {
119+
path: 'purchase-bill-status-selector',
120+
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT],
121+
},
122+
POLICY_ACCOUNTING_XERO_ACCOUNTING_METHOD: {
123+
path: 'accounting-method',
124+
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.XERO_AUTO_SYNC],
125+
},
114126
ADDRESS_COUNTRY: {
115127
path: 'country',
116128
entryScreens: [
@@ -3382,12 +3394,6 @@ const ROUTES = {
33823394
// eslint-disable-next-line no-restricted-syntax -- Legacy route generation
33833395
getRoute: (policyID: string, backTo?: string) => getUrlWithBackToParam(`workspaces/${policyID}/accounting/xero/export/purchase-bill-date-select` as const, backTo),
33843396
},
3385-
POLICY_ACCOUNTING_XERO_EXPORT_BANK_ACCOUNT_SELECT: {
3386-
route: 'workspaces/:policyID/accounting/xero/export/bank-account-select',
3387-
3388-
// eslint-disable-next-line no-restricted-syntax -- Legacy route generation
3389-
getRoute: (policyID: string, backTo?: string) => getUrlWithBackToParam(`workspaces/${policyID}/accounting/xero/export/bank-account-select` as const, backTo),
3390-
},
33913397
POLICY_ACCOUNTING_XERO_ADVANCED: {
33923398
route: 'workspaces/:policyID/accounting/xero/advanced',
33933399
getRoute: (policyID: string | undefined) => {
@@ -3412,23 +3418,6 @@ const ROUTES = {
34123418
return getUrlWithBackToParam(`workspaces/${policyID}/accounting/xero/advanced/autosync` as const, backTo);
34133419
},
34143420
},
3415-
POLICY_ACCOUNTING_XERO_ACCOUNTING_METHOD: {
3416-
route: 'workspaces/:policyID/accounting/xero/advanced/autosync/accounting-method',
3417-
getRoute: (policyID: string | undefined, backTo?: string) => {
3418-
if (!policyID) {
3419-
Log.warn('Invalid policyID is used to build the POLICY_ACCOUNTING_XERO_ACCOUNTING_METHOD route');
3420-
}
3421-
3422-
// eslint-disable-next-line no-restricted-syntax -- Legacy route generation
3423-
return getUrlWithBackToParam(`workspaces/${policyID}/accounting/xero/advanced/autosync/accounting-method` as const, backTo);
3424-
},
3425-
},
3426-
POLICY_ACCOUNTING_XERO_BILL_STATUS_SELECTOR: {
3427-
route: 'workspaces/:policyID/accounting/xero/export/purchase-bill-status-selector',
3428-
3429-
// eslint-disable-next-line no-restricted-syntax -- Legacy route generation
3430-
getRoute: (policyID: string, backTo?: string) => getUrlWithBackToParam(`workspaces/${policyID}/accounting/xero/export/purchase-bill-status-selector` as const, backTo),
3431-
},
34323421
POLICY_ACCOUNTING_XERO_INVOICE_SELECTOR: {
34333422
route: 'workspaces/:policyID/accounting/xero/advanced/invoice-account-selector',
34343423
getRoute: (policyID: string | undefined) => {

src/SCREENS.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -585,12 +585,12 @@ const SCREENS = {
585585
XERO_EXPORT_PURCHASE_BILL_DATE_SELECT: 'Policy_Accounting_Xero_Export_Purchase_Bill_Date_Select',
586586
XERO_ADVANCED: 'Policy_Accounting_Xero_Advanced',
587587
XERO_AUTO_SYNC: 'Policy_Accounting_Xero_Auto_Sync',
588-
XERO_ACCOUNTING_METHOD: 'Policy_Accounting_Xero_Accounting_Method',
589-
XERO_BILL_STATUS_SELECTOR: 'Policy_Accounting_Xero_Export_Bill_Status_Selector',
588+
DYNAMIC_XERO_ACCOUNTING_METHOD: 'Dynamic_Policy_Accounting_Xero_Accounting_Method',
589+
DYNAMIC_XERO_BILL_STATUS_SELECTOR: 'Dynamic_Policy_Accounting_Xero_Export_Bill_Status_Selector',
590590
XERO_INVOICE_ACCOUNT_SELECTOR: 'Policy_Accounting_Xero_Invoice_Account_Selector',
591591
XERO_EXPORT_PREFERRED_EXPORTER_SELECT: 'Workspace_Accounting_Xero_Export_Preferred_Exporter_Select',
592592
XERO_BILL_PAYMENT_ACCOUNT_SELECTOR: 'Policy_Accounting_Xero_Bill_Payment_Account_Selector',
593-
XERO_EXPORT_BANK_ACCOUNT_SELECT: 'Policy_Accounting_Xero_Export_Bank_Account_Select',
593+
DYNAMIC_XERO_EXPORT_BANK_ACCOUNT_SELECT: 'Dynamic_Policy_Accounting_Xero_Export_Bank_Account_Select',
594594
NETSUITE_IMPORT_MAPPING: 'Policy_Accounting_NetSuite_Import_Mapping',
595595
NETSUITE_IMPORT_CUSTOM_FIELD: 'Policy_Accounting_NetSuite_Import_Custom_Field',
596596
NETSUITE_IMPORT_CUSTOM_FIELD_VIEW: 'Policy_Accounting_NetSuite_Import_Custom_Field_View',

src/libs/Navigation/AppNavigator/ModalStackNavigators/index.tsx

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -673,13 +673,14 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
673673
[SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT]: () => require<ReactComponentModule>('../../../../pages/workspace/accounting/xero/export/XeroExportConfigurationPage').default,
674674
[SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT_PURCHASE_BILL_DATE_SELECT]: () =>
675675
require<ReactComponentModule>('../../../../pages/workspace/accounting/xero/export/XeroPurchaseBillDateSelectPage').default,
676-
[SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT_BANK_ACCOUNT_SELECT]: () =>
677-
require<ReactComponentModule>('../../../../pages/workspace/accounting/xero/export/XeroBankAccountSelectPage').default,
676+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_EXPORT_BANK_ACCOUNT_SELECT]: () =>
677+
require<ReactComponentModule>('../../../../pages/workspace/accounting/xero/export/DynamicXeroBankAccountSelectPage').default,
678678
[SCREENS.WORKSPACE.ACCOUNTING.XERO_ADVANCED]: () => require<ReactComponentModule>('../../../../pages/workspace/accounting/xero/advanced/XeroAdvancedPage').default,
679679
[SCREENS.WORKSPACE.ACCOUNTING.XERO_AUTO_SYNC]: () => require<ReactComponentModule>('../../../../pages/workspace/accounting/xero/advanced/XeroAutoSyncPage').default,
680-
[SCREENS.WORKSPACE.ACCOUNTING.XERO_ACCOUNTING_METHOD]: () => require<ReactComponentModule>('../../../../pages/workspace/accounting/xero/advanced/XeroAccountingMethodPage').default,
681-
[SCREENS.WORKSPACE.ACCOUNTING.XERO_BILL_STATUS_SELECTOR]: () =>
682-
require<ReactComponentModule>('../../../../pages/workspace/accounting/xero/export/XeroPurchaseBillStatusSelectorPage').default,
680+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_ACCOUNTING_METHOD]: () =>
681+
require<ReactComponentModule>('../../../../pages/workspace/accounting/xero/advanced/DynamicXeroAccountingMethodPage').default,
682+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_BILL_STATUS_SELECTOR]: () =>
683+
require<ReactComponentModule>('../../../../pages/workspace/accounting/xero/export/DynamicXeroPurchaseBillStatusSelectorPage').default,
683684
[SCREENS.WORKSPACE.ACCOUNTING.XERO_INVOICE_ACCOUNT_SELECTOR]: () =>
684685
require<ReactComponentModule>('../../../../pages/workspace/accounting/xero/advanced/XeroInvoiceAccountSelectorPage').default,
685686
[SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT_PREFERRED_EXPORTER_SELECT]: () =>

src/libs/Navigation/linkingConfig/RELATIONS/WORKSPACE_TO_RHP.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,12 +106,12 @@ const WORKSPACE_TO_RHP: Partial<Record<keyof WorkspaceSplitNavigatorParamList, s
106106
SCREENS.WORKSPACE.ACCOUNTING.XERO_ADVANCED,
107107
SCREENS.WORKSPACE.ACCOUNTING.CLAIM_OFFER,
108108
SCREENS.WORKSPACE.ACCOUNTING.XERO_AUTO_SYNC,
109-
SCREENS.WORKSPACE.ACCOUNTING.XERO_ACCOUNTING_METHOD,
110-
SCREENS.WORKSPACE.ACCOUNTING.XERO_BILL_STATUS_SELECTOR,
109+
SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_ACCOUNTING_METHOD,
110+
SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_BILL_STATUS_SELECTOR,
111111
SCREENS.WORKSPACE.ACCOUNTING.XERO_INVOICE_ACCOUNT_SELECTOR,
112112
SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT_PREFERRED_EXPORTER_SELECT,
113113
SCREENS.WORKSPACE.ACCOUNTING.XERO_BILL_PAYMENT_ACCOUNT_SELECTOR,
114-
SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT_BANK_ACCOUNT_SELECT,
114+
SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_EXPORT_BANK_ACCOUNT_SELECT,
115115
SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_SUBSIDIARY_SELECTOR,
116116
SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_REUSE_EXISTING_CONNECTIONS,
117117
SCREENS.WORKSPACE.ACCOUNTING.NETSUITE_TOKEN_INPUT,

src/libs/Navigation/linkingConfig/config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -653,12 +653,12 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
653653
[SCREENS.WORKSPACE.ACCOUNTING.XERO_TAXES]: {path: ROUTES.POLICY_ACCOUNTING_XERO_TAXES.route},
654654
[SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT]: {path: ROUTES.POLICY_ACCOUNTING_XERO_EXPORT.route},
655655
[SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT_PURCHASE_BILL_DATE_SELECT]: {path: ROUTES.POLICY_ACCOUNTING_XERO_EXPORT_PURCHASE_BILL_DATE_SELECT.route},
656-
[SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT_BANK_ACCOUNT_SELECT]: {path: ROUTES.POLICY_ACCOUNTING_XERO_EXPORT_BANK_ACCOUNT_SELECT.route},
656+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_EXPORT_BANK_ACCOUNT_SELECT]: DYNAMIC_ROUTES.POLICY_ACCOUNTING_XERO_EXPORT_BANK_ACCOUNT_SELECT.path,
657657
[SCREENS.WORKSPACE.ACCOUNTING.XERO_ADVANCED]: {path: ROUTES.POLICY_ACCOUNTING_XERO_ADVANCED.route},
658658
[SCREENS.WORKSPACE.ACCOUNTING.CLAIM_OFFER]: {path: ROUTES.POLICY_ACCOUNTING_CLAIM_OFFER.route},
659659
[SCREENS.WORKSPACE.ACCOUNTING.XERO_AUTO_SYNC]: {path: ROUTES.POLICY_ACCOUNTING_XERO_AUTO_SYNC.route},
660-
[SCREENS.WORKSPACE.ACCOUNTING.XERO_ACCOUNTING_METHOD]: {path: ROUTES.POLICY_ACCOUNTING_XERO_ACCOUNTING_METHOD.route},
661-
[SCREENS.WORKSPACE.ACCOUNTING.XERO_BILL_STATUS_SELECTOR]: {path: ROUTES.POLICY_ACCOUNTING_XERO_BILL_STATUS_SELECTOR.route},
660+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_ACCOUNTING_METHOD]: DYNAMIC_ROUTES.POLICY_ACCOUNTING_XERO_ACCOUNTING_METHOD.path,
661+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_BILL_STATUS_SELECTOR]: DYNAMIC_ROUTES.POLICY_ACCOUNTING_XERO_BILL_STATUS_SELECTOR.path,
662662
[SCREENS.WORKSPACE.ACCOUNTING.XERO_INVOICE_ACCOUNT_SELECTOR]: {path: ROUTES.POLICY_ACCOUNTING_XERO_INVOICE_SELECTOR.route},
663663
[SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT_PREFERRED_EXPORTER_SELECT]: {path: ROUTES.POLICY_ACCOUNTING_XERO_PREFERRED_EXPORTER_SELECT.route},
664664
[SCREENS.WORKSPACE.ACCOUNTING.XERO_BILL_PAYMENT_ACCOUNT_SELECTOR]: {path: ROUTES.POLICY_ACCOUNTING_XERO_BILL_PAYMENT_ACCOUNT_SELECTOR.route},

src/libs/Navigation/types.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -903,15 +903,14 @@ type SettingsNavigatorParamList = {
903903
policyID: string;
904904
integration: string;
905905
};
906-
[SCREENS.WORKSPACE.ACCOUNTING.XERO_BILL_STATUS_SELECTOR]: {
906+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_BILL_STATUS_SELECTOR]: {
907907
policyID: string;
908-
// eslint-disable-next-line no-restricted-syntax -- `backTo` usages in this file are legacy. Do not add new `backTo` params to screens. See contributingGuides/NAVIGATION.md
909-
backTo?: Routes;
910908
};
911-
[SCREENS.WORKSPACE.ACCOUNTING.XERO_EXPORT_BANK_ACCOUNT_SELECT]: {
909+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_ACCOUNTING_METHOD]: {
910+
policyID: string;
911+
};
912+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_XERO_EXPORT_BANK_ACCOUNT_SELECT]: {
912913
policyID: string;
913-
// eslint-disable-next-line no-restricted-syntax -- `backTo` usages in this file are legacy. Do not add new `backTo` params to screens. See contributingGuides/NAVIGATION.md
914-
backTo?: Routes;
915914
};
916915
[SCREENS.WORKSPACE.ACCOUNTING.XERO_INVOICE_ACCOUNT_SELECTOR]: {
917916
policyID: string;

src/pages/workspace/accounting/xero/advanced/XeroAccountingMethodPage.tsx renamed to src/pages/workspace/accounting/xero/advanced/DynamicXeroAccountingMethodPage.tsx

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import type {ListItem} from '@components/SelectionList/types';
77
import SelectionScreen from '@components/SelectionScreen';
88
import type {SelectorType} from '@components/SelectionScreen';
99
import Text from '@components/Text';
10+
import useDynamicBackPath from '@hooks/useDynamicBackPath';
1011
import useLocalize from '@hooks/useLocalize';
1112
import useThemeStyles from '@hooks/useThemeStyles';
1213
import {updateXeroAccountingMethod} from '@libs/actions/connections/Xero';
@@ -16,21 +17,16 @@ import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnec
1617
import withPolicyConnections from '@pages/workspace/withPolicyConnections';
1718
import CONST from '@src/CONST';
1819
import type {TranslationPaths} from '@src/languages/types';
19-
import type {Route} from '@src/ROUTES';
20-
import ROUTES from '@src/ROUTES';
20+
import {DYNAMIC_ROUTES} from '@src/ROUTES';
2121

2222
type MenuListItem = ListItem & {
2323
value: ValueOf<typeof COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD>;
2424
};
2525

26-
type XeroAccountingMethodPageRouteParams = {
27-
backTo?: Route;
28-
};
29-
30-
function XeroAccountingMethodPage({policy, route}: WithPolicyConnectionsProps) {
26+
function DynamicXeroAccountingMethodPage({policy}: WithPolicyConnectionsProps) {
3127
const {translate} = useLocalize();
3228
const policyID = policy?.id;
33-
const {backTo} = route.params as XeroAccountingMethodPageRouteParams;
29+
const backPath = useDynamicBackPath(DYNAMIC_ROUTES.POLICY_ACCOUNTING_XERO_ACCOUNTING_METHOD.path);
3430
const styles = useThemeStyles();
3531
const config = policy?.connections?.xero?.config;
3632
const accountingMethod = config?.export?.accountingMethod ?? COMMON_CONST.INTEGRATIONS.ACCOUNTING_METHOD.CASH;
@@ -59,9 +55,9 @@ function XeroAccountingMethodPage({policy, route}: WithPolicyConnectionsProps) {
5955
if (row.value !== accountingMethod) {
6056
updateXeroAccountingMethod(policyID, row.value, accountingMethod);
6157
}
62-
Navigation.goBack(ROUTES.POLICY_ACCOUNTING_XERO_AUTO_SYNC.getRoute(policyID, backTo));
58+
Navigation.goBack(backPath);
6359
},
64-
[accountingMethod, policyID, backTo],
60+
[accountingMethod, policyID, backPath],
6561
);
6662

6763
return (
@@ -76,12 +72,12 @@ function XeroAccountingMethodPage({policy, route}: WithPolicyConnectionsProps) {
7672
policyID={policyID}
7773
accessVariants={[CONST.POLICY.ACCESS_VARIANTS.ADMIN]}
7874
featureName={CONST.POLICY.MORE_FEATURES.ARE_CONNECTIONS_ENABLED}
79-
onBackButtonPress={() => Navigation.goBack(ROUTES.POLICY_ACCOUNTING_XERO_AUTO_SYNC.getRoute(policyID, backTo))}
75+
onBackButtonPress={() => Navigation.goBack(backPath)}
8076
connectionName={CONST.POLICY.CONNECTIONS.NAME.XERO}
8177
pendingAction={pendingAction}
8278
shouldBeBlocked={!config?.autoSync?.enabled}
8379
/>
8480
);
8581
}
8682

87-
export default withPolicyConnections(XeroAccountingMethodPage);
83+
export default withPolicyConnections(DynamicXeroAccountingMethodPage);

src/pages/workspace/accounting/xero/advanced/XeroAutoSyncPage.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import useLocalize from '@hooks/useLocalize';
88
import useThemeStyles from '@hooks/useThemeStyles';
99
import {updateXeroAutoSync} from '@libs/actions/connections/Xero';
1010
import {getLatestErrorField} from '@libs/ErrorUtils';
11+
import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
1112
import Navigation from '@libs/Navigation/Navigation';
1213
import {settingsPendingAction} from '@libs/PolicyUtils';
1314
import AccessOrNotFoundWrapper from '@pages/workspace/AccessOrNotFoundWrapper';
@@ -18,7 +19,7 @@ import {clearXeroErrorField} from '@userActions/Policy/Policy';
1819
import CONST from '@src/CONST';
1920
import type {TranslationPaths} from '@src/languages/types';
2021
import type {Route} from '@src/ROUTES';
21-
import ROUTES from '@src/ROUTES';
22+
import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES';
2223

2324
type XeroAutoSyncPageRouteParams = {
2425
backTo?: Route;
@@ -85,7 +86,7 @@ function XeroAutoSyncPage({policy, route}: WithPolicyConnectionsProps) {
8586
}
8687
description={translate('workspace.xero.accountingMethods.label')}
8788
shouldShowRightIcon
88-
onPress={() => Navigation.navigate(ROUTES.POLICY_ACCOUNTING_XERO_ACCOUNTING_METHOD.getRoute(policyID, backTo))}
89+
onPress={() => Navigation.navigate(createDynamicRoute(DYNAMIC_ROUTES.POLICY_ACCOUNTING_XERO_ACCOUNTING_METHOD.path))}
8990
/>
9091
</OfflineWithFeedback>
9192
)}

src/pages/workspace/accounting/xero/export/XeroBankAccountSelectPage.tsx renamed to src/pages/workspace/accounting/xero/export/DynamicXeroBankAccountSelectPage.tsx

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,26 @@
1-
import {useRoute} from '@react-navigation/native';
21
import React, {useCallback, useMemo} from 'react';
32
import {View} from 'react-native';
43
import BlockingView from '@components/BlockingViews/BlockingView';
54
import RadioListItem from '@components/SelectionList/ListItem/RadioListItem';
65
import type {SelectorType} from '@components/SelectionScreen';
76
import SelectionScreen from '@components/SelectionScreen';
87
import Text from '@components/Text';
8+
import useDynamicBackPath from '@hooks/useDynamicBackPath';
99
import {useMemoizedLazyIllustrations} from '@hooks/useLazyAsset';
1010
import useLocalize from '@hooks/useLocalize';
1111
import useThemeStyles from '@hooks/useThemeStyles';
1212
import {clearXeroErrorField} from '@libs/actions/Policy/Policy';
1313
import {getLatestErrorField} from '@libs/ErrorUtils';
1414
import Navigation from '@libs/Navigation/Navigation';
15-
import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types';
16-
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
1715
import {getXeroBankAccounts, settingsPendingAction} from '@libs/PolicyUtils';
1816
import type {WithPolicyConnectionsProps} from '@pages/workspace/withPolicyConnections';
1917
import withPolicyConnections from '@pages/workspace/withPolicyConnections';
2018
import variables from '@styles/variables';
2119
import {updateXeroExportNonReimbursableAccount} from '@userActions/connections/Xero';
2220
import CONST from '@src/CONST';
23-
import ROUTES from '@src/ROUTES';
24-
import type SCREENS from '@src/SCREENS';
21+
import {DYNAMIC_ROUTES} from '@src/ROUTES';
2522

26-
function XeroBankAccountSelectPage({policy}: WithPolicyConnectionsProps) {
23+
function DynamicXeroBankAccountSelectPage({policy}: WithPolicyConnectionsProps) {
2724
const styles = useThemeStyles();
2825
const {translate} = useLocalize();
2926
const illustrations = useMemoizedLazyIllustrations(['Telescope']);
@@ -36,12 +33,11 @@ function XeroBankAccountSelectPage({policy}: WithPolicyConnectionsProps) {
3633
() => getXeroBankAccounts(policy ?? undefined, config?.export?.nonReimbursableAccount || bankAccounts?.[0]?.id),
3734
[config?.export?.nonReimbursableAccount, policy, bankAccounts],
3835
);
39-
const route = useRoute<PlatformStackRouteProp<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.ACCOUNTING.XERO_BILL_STATUS_SELECTOR>>();
40-
const backTo = route.params?.backTo;
36+
const backPath = useDynamicBackPath(DYNAMIC_ROUTES.POLICY_ACCOUNTING_XERO_EXPORT_BANK_ACCOUNT_SELECT.path);
4137

4238
const goBack = useCallback(() => {
43-
Navigation.goBack(backTo ?? (policyID && ROUTES.POLICY_ACCOUNTING_XERO_EXPORT.getRoute(policyID)));
44-
}, [policyID, backTo]);
39+
Navigation.goBack(backPath);
40+
}, [backPath]);
4541

4642
const listHeaderComponent = useMemo(
4743
() => (
@@ -101,4 +97,4 @@ function XeroBankAccountSelectPage({policy}: WithPolicyConnectionsProps) {
10197
);
10298
}
10399

104-
export default withPolicyConnections(XeroBankAccountSelectPage);
100+
export default withPolicyConnections(DynamicXeroBankAccountSelectPage);

0 commit comments

Comments
 (0)