Skip to content

Commit 84f071c

Browse files
authored
Merge pull request #89510 from huult/83866-migrate-POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT
2 parents b4a0d22 + a348d66 commit 84f071c

13 files changed

Lines changed: 33 additions & 37 deletions

File tree

src/ROUTES.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,10 @@ const DYNAMIC_ROUTES = {
304304
getRoute: (reportID: string) => getUrlWithParams('notification-preferences', {reportID}),
305305
queryParams: ['reportID'],
306306
},
307+
POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT: {
308+
path: 'sage-intacct/export',
309+
entryScreens: [SCREENS.WORKSPACE.ACCOUNTING.ROOT, SCREENS.WORKSPACE.COMPANY_CARD_EXPORT],
310+
},
307311
WORKSPACE_OVERVIEW_PLAN: {
308312
path: 'plan',
309313
entryScreens: [SCREENS.WORKSPACE.PROFILE],
@@ -3847,12 +3851,6 @@ const ROUTES = {
38473851
route: 'workspaces/:policyID/accounting/sage-intacct/import/edit-user-dimension/:dimensionName',
38483852
getRoute: (policyID: string, dimensionName: string) => `workspaces/${policyID}/accounting/sage-intacct/import/edit-user-dimension/${dimensionName}` as const,
38493853
},
3850-
POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT: {
3851-
route: 'workspaces/:policyID/accounting/sage-intacct/export',
3852-
3853-
// eslint-disable-next-line no-restricted-syntax -- Legacy route generation
3854-
getRoute: (policyID: string, backTo?: string) => getUrlWithBackToParam(`workspaces/${policyID}/accounting/sage-intacct/export` as const, backTo, false),
3855-
},
38563854
POLICY_ACCOUNTING_SAGE_INTACCT_PREFERRED_EXPORTER: {
38573855
route: 'workspaces/:policyID/accounting/sage-intacct/export/preferred-exporter',
38583856

src/SCREENS.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,7 @@ const SCREENS = {
135135
DYNAMIC_EXIT_SURVEY_CONFIRM: 'Dynamic_ExitSurvey_Confirm',
136136
DYNAMIC_EXIT_SURVEY_REASON: 'Dynamic_ExitSurvey_Reason',
137137
DYNAMIC_KEYBOARD_SHORTCUTS: 'Dynamic_Keyboard_Shortcuts',
138+
DYNAMIC_SAGE_INTACCT_EXPORT: 'Dynamic_Sage_Intacct_Export',
138139

139140
PROFILE: {
140141
ROOT: 'Settings_Profile',
@@ -650,6 +651,7 @@ const SCREENS = {
650651
SAGE_INTACCT_ADD_USER_DIMENSION: 'Policy_Accounting_Sage_Intacct_Add_User_Dimension',
651652
SAGE_INTACCT_EDIT_USER_DIMENSION: 'Policy_Accounting_Sage_Intacct_Edit_User_Dimension',
652653
SAGE_INTACCT_EXPORT: 'Policy_Accounting_Sage_Intacct_Export',
654+
DYNAMIC_SAGE_INTACCT_EXPORT: 'Dynamic_Policy_Accounting_Sage_Intacct_Export',
653655
SAGE_INTACCT_PREFERRED_EXPORTER: 'Policy_Accounting_Sage_Intacct_Preferred_Exporter',
654656
SAGE_INTACCT_EXPORT_DATE: 'Policy_Accounting_Sage_Intacct_Export_Date',
655657
SAGE_INTACCT_REIMBURSABLE_EXPENSES: 'Policy_Accounting_Sage_Intacct_Reimbursable_Expenses',

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -786,7 +786,8 @@ const SettingsModalStackNavigator = createModalStackNavigator<SettingsNavigatorP
786786
require<ReactComponentModule>('../../../../pages/workspace/accounting/intacct/EnterSageIntacctCredentialsPage').default,
787787
[SCREENS.WORKSPACE.ACCOUNTING.EXISTING_SAGE_INTACCT_CONNECTIONS]: () => require<ReactComponentModule>('../../../../pages/workspace/accounting/intacct/ExistingConnectionsPage').default,
788788
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_ENTITY]: () => require<ReactComponentModule>('../../../../pages/workspace/accounting/intacct/SageIntacctEntityPage').default,
789-
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_EXPORT]: () => require<ReactComponentModule>('../../../../pages/workspace/accounting/intacct/export/SageIntacctExportPage').default,
789+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_SAGE_INTACCT_EXPORT]: () =>
790+
require<ReactComponentModule>('../../../../pages/workspace/accounting/intacct/export/DynamicSageIntacctExportPage').default,
790791
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_PREFERRED_EXPORTER]: () =>
791792
require<ReactComponentModule>('../../../../pages/workspace/accounting/intacct/export/SageIntacctPreferredExporterPage').default,
792793
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_EXPORT_DATE]: () => require<ReactComponentModule>('../../../../pages/workspace/accounting/intacct/export/SageIntacctDatePage').default,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ const WORKSPACE_TO_RHP: Partial<Record<keyof WorkspaceSplitNavigatorParamList, s
152152
SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_USER_DIMENSIONS,
153153
SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_ADD_USER_DIMENSION,
154154
SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_EDIT_USER_DIMENSION,
155-
SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_EXPORT,
155+
SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_SAGE_INTACCT_EXPORT,
156156
SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_PREFERRED_EXPORTER,
157157
SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_EXPORT_DATE,
158158
SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_REIMBURSABLE_EXPENSES,

src/libs/Navigation/linkingConfig/config.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -758,7 +758,7 @@ const config: LinkingOptions<RootNavigatorParamList>['config'] = {
758758
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_USER_DIMENSIONS]: {path: ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_USER_DIMENSIONS.route},
759759
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_ADD_USER_DIMENSION]: {path: ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_ADD_USER_DIMENSION.route},
760760
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_EDIT_USER_DIMENSION]: {path: ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_EDIT_USER_DIMENSION.route},
761-
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_EXPORT]: {path: ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT.route},
761+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_SAGE_INTACCT_EXPORT]: {path: DYNAMIC_ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT.path},
762762
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_PREFERRED_EXPORTER]: {path: ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_PREFERRED_EXPORTER.route},
763763
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_EXPORT_DATE]: {path: ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT_DATE.route},
764764
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_REIMBURSABLE_EXPENSES]: {path: ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_REIMBURSABLE_EXPENSES.route},

src/libs/Navigation/types.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,10 +1076,8 @@ type SettingsNavigatorParamList = {
10761076
policyID: string;
10771077
dimensionName: string;
10781078
};
1079-
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_EXPORT]: {
1079+
[SCREENS.WORKSPACE.ACCOUNTING.DYNAMIC_SAGE_INTACCT_EXPORT]: {
10801080
policyID: string;
1081-
// 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
1082-
backTo?: Routes;
10831081
};
10841082
[SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_PREFERRED_EXPORTER]: {
10851083
policyID: string;

src/pages/workspace/accounting/intacct/export/SageIntacctExportPage.tsx renamed to src/pages/workspace/accounting/intacct/export/DynamicSageIntacctExportPage.tsx

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,24 @@
1-
import {useRoute} from '@react-navigation/native';
21
import React from 'react';
32
import ConnectionLayout from '@components/ConnectionLayout';
43
import MenuItemWithTopDescription from '@components/MenuItemWithTopDescription';
54
import OfflineWithFeedback from '@components/OfflineWithFeedback';
5+
import useDynamicBackPath from '@hooks/useDynamicBackPath';
66
import useLocalize from '@hooks/useLocalize';
77
import useThemeStyles from '@hooks/useThemeStyles';
8+
import replaceCompanyCardsRoute from '@libs/Navigation/helpers/replaceCompanyCardsRoute';
89
import Navigation from '@libs/Navigation/Navigation';
910
import {areSettingsInErrorFields, getCurrentSageIntacctEntityName, settingsPendingAction} from '@libs/PolicyUtils';
10-
import goBackFromExportConnection from '@navigation/helpers/goBackFromExportConnection';
11-
import type {PlatformStackRouteProp} from '@navigation/PlatformStackNavigation/types';
12-
import type {SettingsNavigatorParamList} from '@navigation/types';
1311
import type {WithPolicyProps} from '@pages/workspace/withPolicy';
1412
import withPolicyConnections from '@pages/workspace/withPolicyConnections';
1513
import CONST from '@src/CONST';
16-
import ROUTES from '@src/ROUTES';
17-
import type SCREENS from '@src/SCREENS';
14+
import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES';
1815

19-
function SageIntacctExportPage({policy}: WithPolicyProps) {
16+
function DynamicSageIntacctExportPage({policy}: WithPolicyProps) {
2017
const {translate} = useLocalize();
2118
const styles = useThemeStyles();
2219
const policyID = policy?.id;
23-
const route = useRoute<PlatformStackRouteProp<SettingsNavigatorParamList, typeof SCREENS.WORKSPACE.ACCOUNTING.SAGE_INTACCT_EXPORT>>();
24-
const backTo = route?.params?.backTo;
20+
const backPath = useDynamicBackPath(DYNAMIC_ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT.path);
2521
const {export: exportConfig, pendingFields, errorFields} = policy?.connections?.intacct?.config ?? {};
26-
const shouldGoBackToSpecificRoute = exportConfig?.reimbursable === CONST.SAGE_INTACCT_REIMBURSABLE_EXPENSE_TYPE.EXPENSE_REPORT;
27-
28-
const goBack = () => {
29-
return goBackFromExportConnection(shouldGoBackToSpecificRoute, backTo);
30-
};
3122

3223
const sections = [
3324
{
@@ -64,13 +55,13 @@ function SageIntacctExportPage({policy}: WithPolicyProps) {
6455

6556
return (
6657
<ConnectionLayout
67-
displayName="SageIntacctExportPage"
58+
displayName="DynamicSageIntacctExportPage"
6859
headerTitle="workspace.accounting.export"
6960
headerSubtitle={getCurrentSageIntacctEntityName(policy, translate('workspace.common.topLevel'))}
7061
title="workspace.sageIntacct.exportDescription"
7162
accessVariants={[CONST.POLICY.ACCESS_VARIANTS.ADMIN, CONST.POLICY.ACCESS_VARIANTS.PAID]}
7263
policyID={policyID}
73-
onBackButtonPress={goBack}
64+
onBackButtonPress={() => Navigation.goBack(replaceCompanyCardsRoute(backPath))}
7465
featureName={CONST.POLICY.MORE_FEATURES.ARE_CONNECTIONS_ENABLED}
7566
contentContainerStyle={styles.pb2}
7667
titleStyle={styles.ph5}
@@ -94,4 +85,4 @@ function SageIntacctExportPage({policy}: WithPolicyProps) {
9485
);
9586
}
9687

97-
export default withPolicyConnections(SageIntacctExportPage);
88+
export default withPolicyConnections(DynamicSageIntacctExportPage);

src/pages/workspace/accounting/intacct/export/SageIntacctDatePage.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import useLocalize from '@hooks/useLocalize';
1010
import useThemeStyles from '@hooks/useThemeStyles';
1111
import {clearSageIntacctErrorField} from '@libs/actions/Policy/Policy';
1212
import {getLatestErrorField} from '@libs/ErrorUtils';
13+
import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
1314
import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types';
1415
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
1516
import {settingsPendingAction} from '@libs/PolicyUtils';
@@ -18,7 +19,7 @@ import type {WithPolicyProps} from '@pages/workspace/withPolicy';
1819
import withPolicyConnections from '@pages/workspace/withPolicyConnections';
1920
import {updateSageIntacctExportDate} from '@userActions/connections/SageIntacct';
2021
import CONST from '@src/CONST';
21-
import ROUTES from '@src/ROUTES';
22+
import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES';
2223
import type SCREENS from '@src/SCREENS';
2324

2425
type MenuListItem = ListItem & {
@@ -42,7 +43,7 @@ function SageIntacctDatePage({policy}: WithPolicyProps) {
4243
const backTo = route.params?.backTo;
4344

4445
const goBack = useCallback(() => {
45-
Navigation.goBack(backTo ?? (policyID && ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT.getRoute(policyID)));
46+
Navigation.goBack(backTo ?? (policyID && createDynamicRoute(DYNAMIC_ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT.path, ROUTES.POLICY_ACCOUNTING.getRoute(policyID))));
4647
}, [policyID, backTo]);
4748

4849
const headerContent = useMemo(

src/pages/workspace/accounting/intacct/export/SageIntacctNonReimbursableExpensesPage.tsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -150,7 +150,9 @@ function SageIntacctNonReimbursableExpensesPage({policy}: WithPolicyConnectionsP
150150
displayName="SageIntacctNonReimbursableExpensesPage"
151151
headerTitle="workspace.accounting.exportCompanyCard"
152152
title="workspace.sageIntacct.nonReimbursableExpenses.description"
153-
onBackButtonPress={() => Navigation.goBack(backTo ?? (policyID && ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT.getRoute(policyID)))}
153+
onBackButtonPress={() =>
154+
Navigation.goBack(backTo ?? (policyID && createDynamicRoute(DYNAMIC_ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT.path, ROUTES.POLICY_ACCOUNTING.getRoute(policyID))))
155+
}
154156
accessVariants={[CONST.POLICY.ACCESS_VARIANTS.ADMIN, CONST.POLICY.ACCESS_VARIANTS.PAID]}
155157
policyID={policyID}
156158
featureName={CONST.POLICY.MORE_FEATURES.ARE_CONNECTIONS_ENABLED}

src/pages/workspace/accounting/intacct/export/SageIntacctPreferredExporterPage.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import useLocalize from '@hooks/useLocalize';
1010
import useThemeStyles from '@hooks/useThemeStyles';
1111
import {clearSageIntacctErrorField} from '@libs/actions/Policy/Policy';
1212
import {getLatestErrorField} from '@libs/ErrorUtils';
13+
import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
1314
import type {PlatformStackRouteProp} from '@libs/Navigation/PlatformStackNavigation/types';
1415
import type {SettingsNavigatorParamList} from '@libs/Navigation/types';
1516
import {getAdminEmployees, isExpensifyTeam, settingsPendingAction} from '@libs/PolicyUtils';
@@ -18,7 +19,7 @@ import type {WithPolicyProps} from '@pages/workspace/withPolicy';
1819
import withPolicyConnections from '@pages/workspace/withPolicyConnections';
1920
import {updateSageIntacctExporter} from '@userActions/connections/SageIntacct';
2021
import CONST from '@src/CONST';
21-
import ROUTES from '@src/ROUTES';
22+
import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES';
2223
import type SCREENS from '@src/SCREENS';
2324

2425
type CardListItem = ListItem & {
@@ -39,7 +40,7 @@ function SageIntacctPreferredExporterPage({policy}: WithPolicyProps) {
3940
const backTo = route.params?.backTo;
4041

4142
const goBack = useCallback(() => {
42-
Navigation.goBack(backTo ?? (policyID && ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT.getRoute(policyID)));
43+
Navigation.goBack(backTo ?? (policyID && createDynamicRoute(DYNAMIC_ROUTES.POLICY_ACCOUNTING_SAGE_INTACCT_EXPORT.path, ROUTES.POLICY_ACCOUNTING.getRoute(policyID))));
4344
}, [policyID, backTo]);
4445

4546
const data: CardListItem[] = useMemo(() => {

0 commit comments

Comments
 (0)