Skip to content

Commit 91911d3

Browse files
authored
Merge pull request #98255 from huult/83858-migrate-money-request-part-2-v5
83858 migrate money request part 2 v5
2 parents 0013b49 + abf6cc0 commit 91911d3

23 files changed

Lines changed: 248 additions & 191 deletions

File tree

‎config/eslint/eslint.seatbelt.tsv‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1076,8 +1076,8 @@
10761076
"../../src/pages/iou/request/step/IOURequestStepScan/utils/getFileSource.ts" "@typescript-eslint/no-unsafe-type-assertion" 1
10771077
"../../src/pages/iou/request/step/IOURequestStepSubrate.tsx" "@typescript-eslint/no-unsafe-type-assertion" 1
10781078
"../../src/pages/iou/request/step/IOURequestStepSubrate.tsx" "react-hooks/set-state-in-effect" 1
1079-
"../../src/pages/iou/request/step/IOURequestStepUpgrade.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
1080-
"../../src/pages/iou/request/step/IOURequestStepUpgrade.tsx" "@typescript-eslint/no-unsafe-type-assertion" 2
1079+
"../../src/pages/iou/request/step/DynamicIOURequestStepUpgrade.tsx" "@typescript-eslint/no-deprecated/ConfirmModal" 1
1080+
"../../src/pages/iou/request/step/DynamicIOURequestStepUpgrade.tsx" "@typescript-eslint/no-unsafe-type-assertion" 2
10811081
"../../src/pages/iou/request/step/IOURequestStepWaypoint.tsx" "@typescript-eslint/no-unsafe-type-assertion" 2
10821082
"../../src/pages/iou/request/step/StepScreenWrapper.tsx" "@typescript-eslint/no-unsafe-type-assertion" 1
10831083
"../../src/pages/iou/request/step/withFullTransactionOrNotFound.tsx" "@typescript-eslint/no-unsafe-type-assertion" 1

‎src/ROUTES.ts‎

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -175,11 +175,11 @@ const DYNAMIC_ROUTES = {
175175
},
176176
WORKSPACE_CONFIRMATION_CURRENCY: {
177177
path: 'currency',
178-
entryScreens: [SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT, SCREENS.TRAVEL.WORKSPACE_CONFIRMATION, SCREENS.MONEY_REQUEST.STEP_UPGRADE],
178+
entryScreens: [SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT, SCREENS.TRAVEL.WORKSPACE_CONFIRMATION, SCREENS.MONEY_REQUEST.DYNAMIC_STEP_UPGRADE],
179179
},
180180
WORKSPACE_CONFIRMATION_PLAN_TYPE: {
181181
path: 'plan-type',
182-
entryScreens: [SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT, SCREENS.TRAVEL.WORKSPACE_CONFIRMATION, SCREENS.MONEY_REQUEST.STEP_UPGRADE],
182+
entryScreens: [SCREENS.WORKSPACE_CONFIRMATION.DYNAMIC_ROOT, SCREENS.TRAVEL.WORKSPACE_CONFIRMATION, SCREENS.MONEY_REQUEST.DYNAMIC_STEP_UPGRADE],
183183
},
184184
MIGRATED_USER_WELCOME: {
185185
path: 'migrated-user-welcome',
@@ -473,7 +473,7 @@ const DYNAMIC_ROUTES = {
473473
SCREENS.WORKSPACE_CONFIRMATION.OWNER_SELECTOR,
474474
SCREENS.WORKSPACE_DUPLICATE.ROOT,
475475
SCREENS.TRAVEL.WORKSPACE_CONFIRMATION,
476-
SCREENS.MONEY_REQUEST.STEP_UPGRADE,
476+
SCREENS.MONEY_REQUEST.DYNAMIC_STEP_UPGRADE,
477477
SCREENS.REPORT_DETAILS.DYNAMIC_ROOT,
478478
],
479479
},
@@ -1646,6 +1646,18 @@ const DYNAMIC_ROUTES = {
16461646
getRoute: (action: IOUAction, iouType: IOUType, transactionID: string, reportID: string | undefined) => getUrlWithParams('taxAmount', {action, iouType, transactionID, reportID}),
16471647
queryParams: ['action', 'iouType', 'transactionID', 'reportID'],
16481648
},
1649+
MONEY_REQUEST_ACCOUNTANT: {
1650+
path: 'accountant',
1651+
entryScreens: [
1652+
SCREENS.REPORT,
1653+
SCREENS.RIGHT_MODAL.SEARCH_REPORT,
1654+
SCREENS.RIGHT_MODAL.EXPENSE_REPORT,
1655+
SCREENS.RIGHT_MODAL.SEARCH_MONEY_REQUEST_REPORT,
1656+
SCREENS.REPORT_DETAILS.DYNAMIC_ROOT,
1657+
],
1658+
getRoute: (action: IOUAction, iouType: IOUType, transactionID: string, reportID: string | undefined) => getUrlWithParams('accountant', {action, iouType, transactionID, reportID}),
1659+
queryParams: ['action', 'iouType', 'transactionID', 'reportID'],
1660+
},
16491661
MONEY_REQUEST_STEP_CATEGORY: {
16501662
path: 'category',
16511663
entryScreens: [
@@ -1685,6 +1697,23 @@ const DYNAMIC_ROUTES = {
16851697
getRoute: (action: IOUAction, iouType: IOUType, transactionID: string, reportID: string | undefined) => getUrlWithParams('attendees', {action, iouType, transactionID, reportID}),
16861698
queryParams: ['action', 'iouType', 'transactionID', 'reportID'],
16871699
},
1700+
MONEY_REQUEST_UPGRADE: {
1701+
path: 'money-request-upgrade',
1702+
entryScreens: ['*'],
1703+
getRoute: (params: {action: IOUAction; iouType: IOUType; transactionID: string; reportID: string; upgradeBackTo?: string; shouldSubmitExpense?: boolean; upgradePath?: string}) => {
1704+
const {action, iouType, transactionID, reportID, upgradeBackTo, shouldSubmitExpense, upgradePath} = params;
1705+
return getUrlWithParams('money-request-upgrade', {
1706+
action,
1707+
iouType,
1708+
transactionID,
1709+
reportID,
1710+
upgradeBackTo,
1711+
shouldSubmitExpense: shouldSubmitExpense ? 'true' : undefined,
1712+
upgradePath,
1713+
});
1714+
},
1715+
queryParams: ['action', 'iouType', 'transactionID', 'reportID', 'upgradeBackTo', 'shouldSubmitExpense', 'upgradePath'],
1716+
},
16881717
} as const satisfies DynamicRoutes;
16891718

16901719
const ROUTES = {
@@ -2404,30 +2433,6 @@ const ROUTES = {
24042433
return getUrlWithBackToParam(`${action as string}/${iouType as string}/amount/${transactionID}/${reportID}/${reportActionID ? `${reportActionID}/` : ''}${pageIndex}`, backTo);
24052434
},
24062435
},
2407-
MONEY_REQUEST_ACCOUNTANT: {
2408-
route: ':action/:iouType/accountant/:transactionID/:reportID',
2409-
getRoute: (action: IOUAction, iouType: IOUType, transactionID: string | undefined, reportID: string | undefined, backTo = '') => {
2410-
if (!transactionID || !reportID) {
2411-
Log.warn('Invalid transactionID or reportID is used to build the MONEY_REQUEST_ACCOUNTANT route');
2412-
}
2413-
2414-
return getUrlWithBackToParam(`${action as string}/${iouType as string}/accountant/${transactionID}/${reportID}`, backTo);
2415-
},
2416-
},
2417-
MONEY_REQUEST_UPGRADE: {
2418-
route: ':action/:iouType/upgrade/:transactionID/:reportID/:upgradePath?',
2419-
getRoute: (params: {action: IOUAction; iouType: IOUType; transactionID: string; reportID: string; backTo?: string; shouldSubmitExpense?: boolean; upgradePath?: string}) => {
2420-
const {action, iouType, transactionID, reportID, backTo = '', shouldSubmitExpense = false, upgradePath} = params;
2421-
const upgradePathParam = upgradePath ? `/${upgradePath}` : '';
2422-
const baseURL = `${action as string}/${iouType as string}/upgrade/${transactionID}/${reportID}${upgradePathParam}` as const;
2423-
2424-
if (shouldSubmitExpense) {
2425-
return getUrlWithBackToParam(`${baseURL}?shouldSubmitExpense=${shouldSubmitExpense}` as const, backTo);
2426-
}
2427-
2428-
return getUrlWithBackToParam(baseURL, backTo);
2429-
},
2430-
},
24312436
MONEY_REQUEST_STEP_VENDOR: {
24322437
route: ':action/:iouType/vendor/:transactionID/:reportID/:reportActionID?',
24332438
getRoute: (action: IOUAction, iouType: IOUType, transactionID: string | undefined, reportID: string | undefined, backTo = '', reportActionID?: string) => {

‎src/SCREENS.ts‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,7 @@ const SCREENS = {
329329
REPORT_REJECT: 'Money_Request_Report_Reject',
330330
STEP_CONFIRMATION: 'Money_Request_Step_Confirmation',
331331
START: 'Money_Request_Start',
332-
STEP_UPGRADE: 'Money_Request_Step_Upgrade',
332+
DYNAMIC_STEP_UPGRADE: 'Dynamic_Money_Request_Step_Upgrade',
333333
STEP_AMOUNT: 'Money_Request_Step_Amount',
334334
DYNAMIC_STEP_CATEGORY: 'Dynamic_Money_Request_Step_Category',
335335
DYNAMIC_STEP_CATEGORY_CREATE: 'Dynamic_Money_Request_Step_Category_Create',
@@ -353,7 +353,7 @@ const SCREENS = {
353353
EDIT_WAYPOINT: 'Money_Request_Edit_Waypoint',
354354
RECEIPT: 'Money_Request_Receipt',
355355
DYNAMIC_STEP_ATTENDEES: 'Dynamic_Money_Request_Attendee',
356-
STEP_ACCOUNTANT: 'Money_Request_Accountant',
356+
DYNAMIC_STEP_ACCOUNTANT: 'Dynamic_Money_Request_Accountant',
357357
DYNAMIC_STEP_DESTINATION: 'Dynamic_Money_Request_Destination',
358358
DYNAMIC_STEP_TIME: 'Dynamic_Money_Request_Time',
359359
STEP_SUBRATE: 'Money_Request_SubRate',

‎src/components/MoneyRequestConfirmationList/sections/CategoryField.tsx‎

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -85,14 +85,16 @@ function CategoryField({
8585

8686
if (shouldNavigateToUpgradePath) {
8787
Navigation.navigate(
88-
ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
89-
action,
90-
iouType,
91-
transactionID,
92-
reportID,
93-
backTo: createDynamicRoute(DYNAMIC_ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute({action, iouType, transactionID, reportID, reportActionID})),
94-
upgradePath: CONST.UPGRADE_PATHS.CATEGORIES,
95-
}),
88+
createDynamicRoute(
89+
DYNAMIC_ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
90+
action,
91+
iouType,
92+
transactionID,
93+
reportID,
94+
upgradeBackTo: createDynamicRoute(DYNAMIC_ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute({action, iouType, transactionID, reportID, reportActionID})),
95+
upgradePath: CONST.UPGRADE_PATHS.CATEGORIES,
96+
}),
97+
),
9698
);
9799
} else if (!policy && shouldSelectPolicy) {
98100
Navigation.navigate(

‎src/components/MoneyRequestConfirmationList/sections/RateField.tsx‎

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -121,15 +121,17 @@ function RateField({
121121

122122
if ((!isPolicyExpenseChat && !isTrackExpense) || (shouldNavigateToUpgradePath && isTrackExpense)) {
123123
Navigation.navigate(
124-
ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
125-
action,
126-
iouType,
127-
transactionID,
128-
reportID,
129-
upgradePath: CONST.UPGRADE_PATHS.DISTANCE_RATES,
130-
backTo: Navigation.getActiveRoute(),
131-
shouldSubmitExpense: !isTrackExpense,
132-
}),
124+
createDynamicRoute(
125+
DYNAMIC_ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
126+
action,
127+
iouType,
128+
transactionID,
129+
reportID,
130+
upgradePath: CONST.UPGRADE_PATHS.DISTANCE_RATES,
131+
upgradeBackTo: Navigation.getActiveRoute(),
132+
shouldSubmitExpense: !isTrackExpense,
133+
}),
134+
),
133135
);
134136
} else if (!policy && shouldSelectPolicy && isTrackExpense) {
135137
Navigation.navigate(

‎src/components/MoneyRequestHeaderSecondaryActions.tsx‎

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -590,13 +590,15 @@ function MoneyRequestHeaderSecondaryActions({reportID, onBackButtonPress}: Money
590590
const iouType = isExpenseReport(parentReport) ? CONST.IOU.TYPE.SUBMIT : CONST.IOU.TYPE.TRACK;
591591
if (shouldNavigateToUpgradePath && reportID) {
592592
Navigation.navigate(
593-
ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
594-
action: CONST.IOU.ACTION.EDIT,
595-
iouType,
596-
transactionID: transaction.transactionID,
597-
reportID,
598-
upgradePath: CONST.UPGRADE_PATHS.REPORTS,
599-
}),
593+
createDynamicRoute(
594+
DYNAMIC_ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
595+
action: CONST.IOU.ACTION.EDIT,
596+
iouType,
597+
transactionID: transaction.transactionID,
598+
reportID,
599+
upgradePath: CONST.UPGRADE_PATHS.REPORTS,
600+
}),
601+
),
600602
);
601603
return;
602604
}

‎src/components/Navigation/QuickCreationActionsBar/index.tsx‎

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ import useThemeStyles from '@hooks/useThemeStyles';
1414
import {startDistanceRequest, startMoneyRequest} from '@libs/actions/IOU/MoneyRequest';
1515
import {createNewReport} from '@libs/actions/Report';
1616
import interceptAnonymousUser from '@libs/interceptAnonymousUser';
17+
import createDynamicRoute from '@libs/Navigation/helpers/dynamicRoutesUtils/createDynamicRoute';
1718
import getCreateReportRoute, {getReportsRootRoute, navigateToCreateReportWorkspaceSelection} from '@libs/Navigation/helpers/getCreateReportRoute';
1819
import Navigation from '@libs/Navigation/Navigation';
1920
import {openTravelDotLink} from '@libs/openTravelDotLink';
@@ -24,7 +25,7 @@ import {shouldRestrictUserBillableActions} from '@libs/SubscriptionUtils';
2425

2526
import CONST from '@src/CONST';
2627
import ONYXKEYS from '@src/ONYXKEYS';
27-
import ROUTES from '@src/ROUTES';
28+
import ROUTES, {DYNAMIC_ROUTES} from '@src/ROUTES';
2829
import {primaryLoginSelector} from '@src/selectors/Account';
2930
import type * as OnyxTypes from '@src/types/onyx';
3031

@@ -141,13 +142,15 @@ function QuickCreationActionsBar() {
141142
const freshReportID = generateReportID();
142143
const freshTransactionID = generateReportID();
143144
Navigation.navigate(
144-
ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
145-
action: CONST.IOU.ACTION.CREATE,
146-
iouType: CONST.IOU.TYPE.CREATE,
147-
transactionID: freshTransactionID,
148-
reportID: freshReportID,
149-
upgradePath: CONST.UPGRADE_PATHS.REPORTS,
150-
}),
145+
createDynamicRoute(
146+
DYNAMIC_ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
147+
action: CONST.IOU.ACTION.CREATE,
148+
iouType: CONST.IOU.TYPE.CREATE,
149+
transactionID: freshTransactionID,
150+
reportID: freshReportID,
151+
upgradePath: CONST.UPGRADE_PATHS.REPORTS,
152+
}),
153+
),
151154
);
152155
return;
153156
}

‎src/components/ReportActionItem/MoneyRequestView.tsx‎

Lines changed: 35 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,13 +1022,15 @@ function MoneyRequestView({
10221022
if (isTrackExpense) {
10231023
if (shouldNavigateToUpgradePath && transactionThreadReport) {
10241024
Navigation.navigate(
1025-
ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
1026-
action: CONST.IOU.ACTION.EDIT,
1027-
iouType,
1028-
transactionID: transaction.transactionID,
1029-
reportID: transactionThreadReport?.reportID,
1030-
upgradePath: CONST.UPGRADE_PATHS.DISTANCE_RATES,
1031-
}),
1025+
createDynamicRoute(
1026+
DYNAMIC_ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
1027+
action: CONST.IOU.ACTION.EDIT,
1028+
iouType,
1029+
transactionID: transaction.transactionID,
1030+
reportID: transactionThreadReport?.reportID,
1031+
upgradePath: CONST.UPGRADE_PATHS.DISTANCE_RATES,
1032+
}),
1033+
),
10321034
);
10331035
return;
10341036
}
@@ -1330,21 +1332,23 @@ function MoneyRequestView({
13301332

13311333
if (shouldNavigateToUpgradePath && transactionThreadReport) {
13321334
Navigation.navigate(
1333-
ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
1334-
action: CONST.IOU.ACTION.EDIT,
1335-
iouType,
1336-
transactionID: transaction.transactionID,
1337-
reportID: transactionThreadReport?.reportID,
1338-
upgradePath: CONST.UPGRADE_PATHS.CATEGORIES,
1339-
backTo: createDynamicRoute(
1340-
DYNAMIC_ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute({
1341-
action: CONST.IOU.ACTION.EDIT,
1342-
iouType,
1343-
transactionID: transaction.transactionID,
1344-
reportID: transactionThreadReport?.reportID,
1345-
}),
1346-
),
1347-
}),
1335+
createDynamicRoute(
1336+
DYNAMIC_ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
1337+
action: CONST.IOU.ACTION.EDIT,
1338+
iouType,
1339+
transactionID: transaction.transactionID,
1340+
reportID: transactionThreadReport?.reportID,
1341+
upgradePath: CONST.UPGRADE_PATHS.CATEGORIES,
1342+
upgradeBackTo: createDynamicRoute(
1343+
DYNAMIC_ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute({
1344+
action: CONST.IOU.ACTION.EDIT,
1345+
iouType,
1346+
transactionID: transaction.transactionID,
1347+
reportID: transactionThreadReport?.reportID,
1348+
}),
1349+
),
1350+
}),
1351+
),
13481352
);
13491353
} else if (!policy && shouldSelectPolicy) {
13501354
Navigation.navigate(
@@ -1587,13 +1591,15 @@ function MoneyRequestView({
15871591
}
15881592
if (shouldNavigateToUpgradePath) {
15891593
Navigation.navigate(
1590-
ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
1591-
iouType,
1592-
action: CONST.IOU.ACTION.EDIT,
1593-
transactionID: transaction?.transactionID,
1594-
reportID: transactionThreadReport?.reportID,
1595-
upgradePath: CONST.UPGRADE_PATHS.REPORTS,
1596-
}),
1594+
createDynamicRoute(
1595+
DYNAMIC_ROUTES.MONEY_REQUEST_UPGRADE.getRoute({
1596+
iouType,
1597+
action: CONST.IOU.ACTION.EDIT,
1598+
transactionID: transaction?.transactionID,
1599+
reportID: transactionThreadReport?.reportID,
1600+
upgradePath: CONST.UPGRADE_PATHS.REPORTS,
1601+
}),
1602+
),
15971603
);
15981604
return;
15991605
}

0 commit comments

Comments
 (0)