Skip to content

Commit 586ddff

Browse files
authored
Merge pull request #35458 from dukenv0307/fix/34606
remove MoneyRequestCategoryPage and refactor route
2 parents 80e9c2b + 4b4a005 commit 586ddff

18 files changed

+122
-257
lines changed

src/ROUTES.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -287,10 +287,6 @@ const ROUTES = {
287287
route: ':iouType/new/currency/:reportID?',
288288
getRoute: (iouType: string, reportID: string, currency: string, backTo: string) => `${iouType}/new/currency/${reportID}?currency=${currency}&backTo=${backTo}` as const,
289289
},
290-
MONEY_REQUEST_CATEGORY: {
291-
route: ':iouType/new/category/:reportID?',
292-
getRoute: (iouType: string, reportID = '') => `${iouType}/new/category/${reportID}` as const,
293-
},
294290
MONEY_REQUEST_HOLD_REASON: {
295291
route: ':iouType/edit/reason/:transactionID?',
296292
getRoute: (iouType: string, transactionID: string, reportID: string, backTo: string) => `${iouType}/edit/reason/${transactionID}?backTo=${backTo}&reportID=${reportID}` as const,
@@ -338,9 +334,9 @@ const ROUTES = {
338334
getUrlWithBackToParam(`create/${iouType}/taxAmount/${transactionID}/${reportID}`, backTo),
339335
},
340336
MONEY_REQUEST_STEP_CATEGORY: {
341-
route: 'create/:iouType/category/:transactionID/:reportID',
342-
getRoute: (iouType: ValueOf<typeof CONST.IOU.TYPE>, transactionID: string, reportID: string, backTo = '') =>
343-
getUrlWithBackToParam(`create/${iouType}/category/${transactionID}/${reportID}`, backTo),
337+
route: ':action/:iouType/category/:transactionID/:reportID',
338+
getRoute: (action: ValueOf<typeof CONST.IOU.ACTION>, iouType: ValueOf<typeof CONST.IOU.TYPE>, transactionID: string, reportID: string, backTo = '') =>
339+
getUrlWithBackToParam(`${action}/${iouType}/category/${transactionID}/${reportID}`, backTo),
344340
},
345341
MONEY_REQUEST_STEP_CURRENCY: {
346342
route: 'create/:iouType/currency/:transactionID/:reportID/:pageIndex?',

src/SCREENS.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ const SCREENS = {
149149
PARTICIPANTS: 'Money_Request_Participants',
150150
CONFIRMATION: 'Money_Request_Confirmation',
151151
CURRENCY: 'Money_Request_Currency',
152-
CATEGORY: 'Money_Request_Category',
153152
WAYPOINT: 'Money_Request_Waypoint',
154153
EDIT_WAYPOINT: 'Money_Request_Edit_Waypoint',
155154
DISTANCE: 'Money_Request_Distance',

src/components/MoneyRequestConfirmationList.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -766,11 +766,15 @@ function MoneyRequestConfirmationList(props) {
766766
description={translate('common.category')}
767767
numberOfLinesTitle={2}
768768
onPress={() => {
769-
if (props.isEditingSplitBill) {
770-
Navigation.navigate(ROUTES.EDIT_SPLIT_BILL.getRoute(props.reportID, props.reportActionID, CONST.EDIT_REQUEST_FIELD.CATEGORY));
771-
return;
772-
}
773-
Navigation.navigate(ROUTES.MONEY_REQUEST_CATEGORY.getRoute(props.iouType, props.reportID));
769+
Navigation.navigate(
770+
ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute(
771+
CONST.IOU.ACTION.EDIT,
772+
props.iouType,
773+
props.transaction.transactionID,
774+
props.reportID,
775+
Navigation.getActiveRouteWithoutParams(),
776+
),
777+
);
774778
}}
775779
style={[styles.moneyRequestMenuItem]}
776780
titleStyle={styles.flex1}

src/components/MoneyTemporaryForRefactorRequestConfirmationList.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -747,7 +747,11 @@ function MoneyTemporaryForRefactorRequestConfirmationList({
747747
title={iouCategory}
748748
description={translate('common.category')}
749749
numberOfLinesTitle={2}
750-
onPress={() => Navigation.navigate(ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute(iouType, transaction.transactionID, reportID, Navigation.getActiveRouteWithoutParams()))}
750+
onPress={() =>
751+
Navigation.navigate(
752+
ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute(CONST.IOU.ACTION.CREATE, iouType, transaction.transactionID, reportID, Navigation.getActiveRouteWithoutParams()),
753+
)
754+
}
751755
style={[styles.moneyRequestMenuItem]}
752756
titleStyle={styles.flex1}
753757
disabled={didConfirm}

src/components/ReportActionItem/MoneyRequestView.tsx

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,11 @@ function MoneyRequestView({
373373
interactive={canEdit}
374374
shouldShowRightIcon={canEdit}
375375
titleStyle={styles.flex1}
376-
onPress={() => Navigation.navigate(ROUTES.EDIT_REQUEST.getRoute(report.reportID, CONST.EDIT_REQUEST_FIELD.CATEGORY))}
376+
onPress={() =>
377+
Navigation.navigate(
378+
ROUTES.MONEY_REQUEST_STEP_CATEGORY.getRoute(CONST.IOU.ACTION.EDIT, CONST.IOU.TYPE.REQUEST, transaction?.transactionID ?? '', report.reportID),
379+
)
380+
}
377381
brickRoadIndicator={getErrorForField('category') ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined}
378382
error={getErrorForField('category')}
379383
/>

src/libs/Navigation/AppNavigator/ModalStackNavigators.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,6 @@ const MoneyRequestModalStackNavigator = createModalStackNavigator<MoneyRequestNa
100100
[SCREENS.MONEY_REQUEST.CONFIRMATION]: () => require('../../../pages/iou/steps/MoneyRequestConfirmPage').default as React.ComponentType,
101101
[SCREENS.MONEY_REQUEST.CURRENCY]: () => require('../../../pages/iou/IOUCurrencySelection').default as React.ComponentType,
102102
[SCREENS.MONEY_REQUEST.HOLD]: () => require('../../../pages/iou/HoldReasonPage').default as React.ComponentType,
103-
[SCREENS.MONEY_REQUEST.CATEGORY]: () => require('../../../pages/iou/MoneyRequestCategoryPage').default as React.ComponentType,
104103
[SCREENS.IOU_SEND.ADD_BANK_ACCOUNT]: () => require('../../../pages/AddPersonalBankAccountPage').default as React.ComponentType,
105104
[SCREENS.IOU_SEND.ADD_DEBIT_CARD]: () => require('../../../pages/settings/Wallet/AddDebitCardPage').default as React.ComponentType,
106105
[SCREENS.IOU_SEND.ENABLE_PAYMENTS]: () => require('../../../pages/EnablePayments/EnablePaymentsPage').default as React.ComponentType,

src/libs/Navigation/linkingConfig/config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,6 @@ const config: LinkingOptions<RootStackParamList>['config'] = {
431431
[SCREENS.MONEY_REQUEST.PARTICIPANTS]: ROUTES.MONEY_REQUEST_PARTICIPANTS.route,
432432
[SCREENS.MONEY_REQUEST.CONFIRMATION]: ROUTES.MONEY_REQUEST_CONFIRMATION.route,
433433
[SCREENS.MONEY_REQUEST.CURRENCY]: ROUTES.MONEY_REQUEST_CURRENCY.route,
434-
[SCREENS.MONEY_REQUEST.CATEGORY]: ROUTES.MONEY_REQUEST_CATEGORY.route,
435434
[SCREENS.MONEY_REQUEST.RECEIPT]: ROUTES.MONEY_REQUEST_RECEIPT.route,
436435
[SCREENS.MONEY_REQUEST.DISTANCE]: ROUTES.MONEY_REQUEST_DISTANCE.route,
437436
[SCREENS.IOU_SEND.ENABLE_PAYMENTS]: ROUTES.IOU_SEND_ENABLE_PAYMENTS,

src/libs/Navigation/types.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -264,9 +264,12 @@ type MoneyRequestNavigatorParamList = {
264264
reportID: string;
265265
backTo: string;
266266
};
267-
[SCREENS.MONEY_REQUEST.CATEGORY]: {
268-
iouType: string;
267+
[SCREENS.MONEY_REQUEST.STEP_CATEGORY]: {
268+
action: ValueOf<typeof CONST.IOU.ACTION>;
269+
iouType: ValueOf<typeof CONST.IOU.TYPE>;
270+
transactionID: string;
269271
reportID: string;
272+
backTo: string;
270273
};
271274
[SCREENS.MONEY_REQUEST.STEP_TAX_AMOUNT]: {
272275
iouType: string;

src/libs/actions/IOU.ts

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ import {isEmptyObject} from '@src/types/utils/EmptyObject';
6060
import * as Policy from './Policy';
6161
import * as Report from './Report';
6262

63-
type MoneyRequestRoute = StackScreenProps<MoneyRequestNavigatorParamList, typeof SCREENS.MONEY_REQUEST.CATEGORY | typeof SCREENS.MONEY_REQUEST.CONFIRMATION>['route'];
63+
type MoneyRequestRoute = StackScreenProps<MoneyRequestNavigatorParamList, typeof SCREENS.MONEY_REQUEST.CONFIRMATION>['route'];
6464

6565
type IOURequestType = ValueOf<typeof CONST.IOU.REQUEST_TYPE>;
6666

@@ -304,16 +304,10 @@ function setMoneyRequestPendingFields(transactionID: string, pendingFields: Pend
304304
Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${transactionID}`, {pendingFields});
305305
}
306306

307-
// eslint-disable-next-line @typescript-eslint/naming-convention
308-
function setMoneyRequestCategory_temporaryForRefactor(transactionID: string, category: string) {
307+
function setMoneyRequestCategory(transactionID: string, category: string) {
309308
Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${transactionID}`, {category});
310309
}
311310

312-
// eslint-disable-next-line @typescript-eslint/naming-convention
313-
function resetMoneyRequestCategory_temporaryForRefactor(transactionID: string) {
314-
Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${transactionID}`, {category: null});
315-
}
316-
317311
function setMoneyRequestTag(transactionID: string, tag: string) {
318312
Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${transactionID}`, {tag});
319313
}
@@ -3877,14 +3871,6 @@ function setMoneyRequestCurrency(currency: string) {
38773871
Onyx.merge(ONYXKEYS.IOU, {currency});
38783872
}
38793873

3880-
function setMoneyRequestCategory(category: string) {
3881-
Onyx.merge(ONYXKEYS.IOU, {category});
3882-
}
3883-
3884-
function resetMoneyRequestCategory() {
3885-
Onyx.merge(ONYXKEYS.IOU, {category: ''});
3886-
}
3887-
38883874
function setMoneyRequestTaxRate(transactionID: string, taxRate: TaxRate) {
38893875
Onyx.merge(`${ONYXKEYS.COLLECTION.TRANSACTION_DRAFT}${transactionID}`, {taxRate});
38903876
}
@@ -3942,7 +3928,6 @@ function navigateToNextPage(iou: OnyxEntry<OnyxTypes.IOU>, iouType: string, repo
39423928
? [{reportID: chatReport?.reportID, isPolicyExpenseChat: true, selected: true}]
39433929
: (chatReport?.participantAccountIDs ?? []).filter((accountID) => currentUserAccountID !== accountID).map((accountID) => ({accountID, selected: true}));
39443930
setMoneyRequestParticipants(participants);
3945-
resetMoneyRequestCategory();
39463931
}
39473932
Navigation.navigate(ROUTES.MONEY_REQUEST_CONFIRMATION.getRoute(iouType, report.reportID));
39483933
return;
@@ -4105,12 +4090,9 @@ export {
41054090
startMoneyRequest,
41064091
initMoneyRequest,
41074092
startMoneyRequest_temporaryForRefactor,
4108-
resetMoneyRequestCategory,
4109-
resetMoneyRequestCategory_temporaryForRefactor,
41104093
resetMoneyRequestInfo,
41114094
setMoneyRequestAmount_temporaryForRefactor,
41124095
setMoneyRequestBillable_temporaryForRefactor,
4113-
setMoneyRequestCategory_temporaryForRefactor,
41144096
setMoneyRequestCreated,
41154097
setMoneyRequestCurrency_temporaryForRefactor,
41164098
setMoneyRequestDescription,

src/pages/EditRequestCategoryPage.js

Lines changed: 0 additions & 55 deletions
This file was deleted.

src/pages/EditRequestPage.js

Lines changed: 1 addition & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import lodashGet from 'lodash/get';
2-
import lodashValues from 'lodash/values';
32
import PropTypes from 'prop-types';
43
import React, {useCallback, useEffect, useMemo} from 'react';
54
import {withOnyx} from 'react-native-onyx';
@@ -21,7 +20,6 @@ import CONST from '@src/CONST';
2120
import ONYXKEYS from '@src/ONYXKEYS';
2221
import ROUTES from '@src/ROUTES';
2322
import EditRequestAmountPage from './EditRequestAmountPage';
24-
import EditRequestCategoryPage from './EditRequestCategoryPage';
2523
import EditRequestDistancePage from './EditRequestDistancePage';
2624
import EditRequestReceiptPage from './EditRequestReceiptPage';
2725
import EditRequestTagPage from './EditRequestTagPage';
@@ -77,7 +75,7 @@ const defaultProps = {
7775
function EditRequestPage({report, route, policy, policyCategories, policyTags, parentReportActions, transaction}) {
7876
const parentReportActionID = lodashGet(report, 'parentReportActionID', '0');
7977
const parentReportAction = lodashGet(parentReportActions, parentReportActionID, {});
80-
const {amount: transactionAmount, currency: transactionCurrency, category: transactionCategory, tag: transactionTag} = ReportUtils.getTransactionDetails(transaction);
78+
const {amount: transactionAmount, currency: transactionCurrency, tag: transactionTag} = ReportUtils.getTransactionDetails(transaction);
8179

8280
const defaultCurrency = lodashGet(route, 'params.currency', '') || transactionCurrency;
8381
const fieldToEdit = lodashGet(route, ['params', 'field'], '');
@@ -90,9 +88,6 @@ function EditRequestPage({report, route, policy, policyCategories, policyTags, p
9088
// A flag for verifying that the current report is a sub-report of a workspace chat
9189
const isPolicyExpenseChat = ReportUtils.isGroupPolicy(report);
9290

93-
// A flag for showing the categories page
94-
const shouldShowCategories = isPolicyExpenseChat && (transactionCategory || OptionsListUtils.hasEnabledOptions(lodashValues(policyCategories)));
95-
9691
// A flag for showing the tags page
9792
const shouldShowTags = useMemo(() => isPolicyExpenseChat && (transactionTag || OptionsListUtils.hasEnabledTags(policyTagLists)), [isPolicyExpenseChat, policyTagLists, transactionTag]);
9893

@@ -145,16 +140,6 @@ function EditRequestPage({report, route, policy, policyCategories, policyTags, p
145140
[tag, transaction.transactionID, report.reportID, transactionTag, tagIndex, policy, policyTags, policyCategories],
146141
);
147142

148-
const saveCategory = useCallback(
149-
({category: newCategory}) => {
150-
// In case the same category has been selected, reset the category.
151-
const updatedCategory = newCategory === transactionCategory ? '' : newCategory;
152-
IOU.updateMoneyRequestCategory(transaction.transactionID, report.reportID, updatedCategory, policy, policyTags, policyCategories);
153-
Navigation.dismissModal();
154-
},
155-
[transactionCategory, transaction.transactionID, report.reportID, policy, policyTags, policyCategories],
156-
);
157-
158143
if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.AMOUNT) {
159144
return (
160145
<EditRequestAmountPage
@@ -170,16 +155,6 @@ function EditRequestPage({report, route, policy, policyCategories, policyTags, p
170155
);
171156
}
172157

173-
if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.CATEGORY && shouldShowCategories) {
174-
return (
175-
<EditRequestCategoryPage
176-
defaultCategory={transactionCategory}
177-
policyID={lodashGet(report, 'policyID', '')}
178-
onSubmit={saveCategory}
179-
/>
180-
);
181-
}
182-
183158
if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.TAG && shouldShowTags) {
184159
return (
185160
<EditRequestTagPage

src/pages/EditSplitBillPage.tsx

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import type SCREENS from '@src/SCREENS';
1616
import type {Report, ReportActions, Transaction} from '@src/types/onyx';
1717
import type {OriginalMessageIOU} from '@src/types/onyx/OriginalMessage';
1818
import EditRequestAmountPage from './EditRequestAmountPage';
19-
import EditRequestCategoryPage from './EditRequestCategoryPage';
2019
import EditRequestTagPage from './EditRequestTagPage';
2120

2221
type EditSplitBillOnyxProps = {
@@ -40,12 +39,7 @@ type EditSplitBillProps = EditSplitBillOnyxProps & StackScreenProps<SplitDetails
4039
function EditSplitBillPage({route, transaction, draftTransaction, report}: EditSplitBillProps) {
4140
const {field: fieldToEdit, reportID, reportActionID, currency, tagIndex} = route.params;
4241

43-
const {
44-
amount: transactionAmount,
45-
currency: transactionCurrency,
46-
category: transactionCategory,
47-
tag: transactionTag,
48-
} = ReportUtils.getTransactionDetails(draftTransaction ?? transaction) ?? {};
42+
const {amount: transactionAmount, currency: transactionCurrency, tag: transactionTag} = ReportUtils.getTransactionDetails(draftTransaction ?? transaction) ?? {};
4943

5044
const defaultCurrency = currency ?? transactionCurrency;
5145
function navigateBackToSplitDetails() {
@@ -80,18 +74,6 @@ function EditSplitBillPage({route, transaction, draftTransaction, report}: EditS
8074
);
8175
}
8276

83-
if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.CATEGORY) {
84-
return (
85-
<EditRequestCategoryPage
86-
defaultCategory={transactionCategory ?? ''}
87-
policyID={report?.policyID ? report.policyID : ''}
88-
onSubmit={(transactionChanges) => {
89-
setDraftSplitTransaction({category: transactionChanges.category.trim()});
90-
}}
91-
/>
92-
);
93-
}
94-
9577
if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.TAG) {
9678
return (
9779
<EditRequestTagPage

0 commit comments

Comments
 (0)