From 48530bb26a182800dffd3855403427ad28aa4b54 Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Wed, 24 Jan 2024 12:59:20 +0100 Subject: [PATCH 1/9] migrate EditSplitPage to typescript --- src/ONYXKEYS.ts | 1 + src/libs/ReportUtils.ts | 1 + src/pages/EditSplitBillPage.js | 190 -------------------------------- src/pages/EditSplitBillPage.tsx | 180 ++++++++++++++++++++++++++++++ 4 files changed, 182 insertions(+), 190 deletions(-) delete mode 100644 src/pages/EditSplitBillPage.js create mode 100644 src/pages/EditSplitBillPage.tsx diff --git a/src/ONYXKEYS.ts b/src/ONYXKEYS.ts index 9693c907a5fe..5906328b889c 100755 --- a/src/ONYXKEYS.ts +++ b/src/ONYXKEYS.ts @@ -473,6 +473,7 @@ type OnyxValues = { [ONYXKEYS.COLLECTION.SECURITY_GROUP]: OnyxTypes.SecurityGroup; [ONYXKEYS.COLLECTION.TRANSACTION]: OnyxTypes.Transaction; [ONYXKEYS.COLLECTION.TRANSACTION_DRAFT]: OnyxTypes.Transaction; + [ONYXKEYS.COLLECTION.SPLIT_TRANSACTION_DRAFT]: OnyxTypes.Transaction; [ONYXKEYS.COLLECTION.POLICY_RECENTLY_USED_TAGS]: OnyxTypes.RecentlyUsedTags; [ONYXKEYS.COLLECTION.SELECTED_TAB]: string; [ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS]: OnyxTypes.TransactionViolation[]; diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 33290b5046f0..5b37ac2806b2 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -4839,4 +4839,5 @@ export type { OptimisticAddCommentReportAction, OptimisticCreatedReportAction, OptimisticClosedReportAction, + TransactionDetails, }; diff --git a/src/pages/EditSplitBillPage.js b/src/pages/EditSplitBillPage.js deleted file mode 100644 index 2be8d6f683ee..000000000000 --- a/src/pages/EditSplitBillPage.js +++ /dev/null @@ -1,190 +0,0 @@ -import lodashGet from 'lodash/get'; -import PropTypes from 'prop-types'; -import React from 'react'; -import {withOnyx} from 'react-native-onyx'; -import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; -import transactionPropTypes from '@components/transactionPropTypes'; -import compose from '@libs/compose'; -import * as CurrencyUtils from '@libs/CurrencyUtils'; -import Navigation from '@libs/Navigation/Navigation'; -import * as ReportUtils from '@libs/ReportUtils'; -import * as IOU from '@userActions/IOU'; -import CONST from '@src/CONST'; -import ONYXKEYS from '@src/ONYXKEYS'; -import ROUTES from '@src/ROUTES'; -import EditRequestAmountPage from './EditRequestAmountPage'; -import EditRequestCategoryPage from './EditRequestCategoryPage'; -import EditRequestCreatedPage from './EditRequestCreatedPage'; -import EditRequestDescriptionPage from './EditRequestDescriptionPage'; -import EditRequestMerchantPage from './EditRequestMerchantPage'; -import EditRequestTagPage from './EditRequestTagPage'; -import reportPropTypes from './reportPropTypes'; - -const propTypes = { - /** Route from navigation */ - route: PropTypes.shape({ - /** Params from the route */ - params: PropTypes.shape({ - /** The transaction field we are editing */ - field: PropTypes.string, - - /** The chat reportID of the split */ - reportID: PropTypes.string, - - /** reportActionID of the split action */ - reportActionID: PropTypes.string, - }), - }).isRequired, - - /** The current transaction */ - transaction: transactionPropTypes.isRequired, - - /** The draft transaction that holds data to be persisted on the current transaction */ - draftTransaction: transactionPropTypes, - - /** The report currently being used */ - report: reportPropTypes.isRequired, -}; - -const defaultProps = { - draftTransaction: undefined, -}; - -function EditSplitBillPage({route, transaction, draftTransaction, report}) { - const fieldToEdit = lodashGet(route, ['params', 'field'], ''); - const reportID = lodashGet(route, ['params', 'reportID'], ''); - const reportActionID = lodashGet(route, ['params', 'reportActionID'], ''); - - const { - amount: transactionAmount, - currency: transactionCurrency, - comment: transactionDescription, - merchant: transactionMerchant, - created: transactionCreated, - category: transactionCategory, - tag: transactionTag, - } = draftTransaction ? ReportUtils.getTransactionDetails(draftTransaction) : ReportUtils.getTransactionDetails(transaction); - - const defaultCurrency = lodashGet(route, 'params.currency', '') || transactionCurrency; - - function navigateBackToSplitDetails() { - Navigation.navigate(ROUTES.SPLIT_BILL_DETAILS.getRoute(reportID, reportActionID)); - } - - const setDraftSplitTransaction = (transactionChanges) => { - IOU.setDraftSplitTransaction(transaction.transactionID, transactionChanges); - navigateBackToSplitDetails(); - }; - - if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.DESCRIPTION) { - return ( - { - setDraftSplitTransaction({ - comment: transactionChanges.comment.trim(), - }); - }} - /> - ); - } - - if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.DATE) { - return ( - - ); - } - - if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.AMOUNT) { - return ( - { - const amount = CurrencyUtils.convertToBackendAmount(Number.parseFloat(transactionChanges.amount)); - - setDraftSplitTransaction({ - amount, - currency: transactionChanges.currency, - }); - }} - onNavigateToCurrency={() => { - const activeRoute = encodeURIComponent(Navigation.getActiveRouteWithoutParams()); - Navigation.navigate(ROUTES.EDIT_SPLIT_BILL_CURRENCY.getRoute(reportID, reportActionID, defaultCurrency, activeRoute)); - }} - /> - ); - } - - if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.MERCHANT) { - return ( - { - setDraftSplitTransaction({merchant: transactionChanges.merchant.trim()}); - }} - /> - ); - } - - if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.CATEGORY) { - return ( - { - setDraftSplitTransaction({category: transactionChanges.category.trim()}); - }} - /> - ); - } - - if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.TAG) { - return ( - { - setDraftSplitTransaction({tag: transactionChanges.tag.trim()}); - }} - /> - ); - } - - return ; -} - -EditSplitBillPage.displayName = 'EditSplitBillPage'; -EditSplitBillPage.propTypes = propTypes; -EditSplitBillPage.defaultProps = defaultProps; -export default compose( - withOnyx({ - reportActions: { - key: ({route}) => `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${route.params.reportID}`, - canEvict: false, - }, - report: { - key: ({route}) => `${ONYXKEYS.COLLECTION.REPORT}${route.params.reportID}`, - }, - }), - // eslint-disable-next-line rulesdir/no-multiple-onyx-in-file - withOnyx({ - transaction: { - key: ({route, reportActions}) => { - const reportAction = reportActions[`${route.params.reportActionID.toString()}`]; - return `${ONYXKEYS.COLLECTION.TRANSACTION}${lodashGet(reportAction, 'originalMessage.IOUTransactionID', 0)}`; - }, - }, - draftTransaction: { - key: ({route, reportActions}) => { - const reportAction = reportActions[`${route.params.reportActionID.toString()}`]; - return `${ONYXKEYS.COLLECTION.SPLIT_TRANSACTION_DRAFT}${lodashGet(reportAction, 'originalMessage.IOUTransactionID', 0)}`; - }, - }, - }), -)(EditSplitBillPage); diff --git a/src/pages/EditSplitBillPage.tsx b/src/pages/EditSplitBillPage.tsx new file mode 100644 index 000000000000..607dfa552d8b --- /dev/null +++ b/src/pages/EditSplitBillPage.tsx @@ -0,0 +1,180 @@ +import type {RouteProp} from '@react-navigation/native'; +import React from 'react'; +import type {OnyxEntry} from 'react-native-onyx'; +import {withOnyx} from 'react-native-onyx'; +import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; +import * as CurrencyUtils from '@libs/CurrencyUtils'; +import Navigation from '@libs/Navigation/Navigation'; +import * as ReportUtils from '@libs/ReportUtils'; +import * as IOU from '@userActions/IOU'; +import CONST from '@src/CONST'; +import ONYXKEYS from '@src/ONYXKEYS'; +import ROUTES from '@src/ROUTES'; +import type {Report, ReportActions, Transaction} from '@src/types/onyx'; +import type {OriginalMessageIOU} from '@src/types/onyx/OriginalMessage'; +import EditRequestAmountPage from './EditRequestAmountPage'; +import EditRequestCategoryPage from './EditRequestCategoryPage'; +import EditRequestCreatedPage from './EditRequestCreatedPage'; +import EditRequestDescriptionPage from './EditRequestDescriptionPage'; +import EditRequestMerchantPage from './EditRequestMerchantPage'; +import EditRequestTagPage from './EditRequestTagPage'; + +type EditSplitBillOnyxProps = { + /** The report currently being used */ + report: OnyxEntry; + + /** The report action for currently used report */ + // Used in withOnyx + // eslint-disable-next-line react/no-unused-prop-types + reportActions: OnyxEntry; + + /** The current transaction */ + transaction: OnyxEntry; + + /** The draft transaction that holds data to be persisted on the current transaction */ + draftTransaction: OnyxEntry; +}; + +type EditSplitBillProps = EditSplitBillOnyxProps & { + route: RouteProp<{params: {field: string; reportID: string; reportActionID: string}}>; +}; + +function EditSplitBillPage({route, transaction, draftTransaction, report}: EditSplitBillProps) { + const fieldToEdit = route.params.field; + const reportID = route.params.reportID; + const reportActionID = route.params.reportActionID; + + const draftTransactionDetails = ReportUtils.getTransactionDetails(draftTransaction); + const transactionDetails = ReportUtils.getTransactionDetails(transaction); + const transactionAmount = draftTransactionDetails ? draftTransactionDetails.amount : transactionDetails?.amount; + const transactionCurrency = draftTransactionDetails ? draftTransactionDetails.currency : transactionDetails?.currency; + const transactionDescription = draftTransactionDetails ? draftTransactionDetails.comment : transactionDetails?.comment; + const transactionMerchant = draftTransactionDetails ? draftTransactionDetails.merchant : transactionDetails?.merchant; + const transactionCreated = draftTransactionDetails ? draftTransactionDetails.created : transactionDetails?.created; + const transactionCategory = draftTransactionDetails ? draftTransactionDetails.category : transactionDetails?.category; + const transactionTag = draftTransactionDetails ? draftTransactionDetails.tag : transactionDetails?.tag; + + const defaultCurrency = transactionCurrency; + + function navigateBackToSplitDetails() { + Navigation.navigate(ROUTES.SPLIT_BILL_DETAILS.getRoute(reportID, reportActionID)); + } + + // eslint-disable-next-line @typescript-eslint/ban-types + const setDraftSplitTransaction = (transactionChanges: Object) => { + if (transaction) { + IOU.setDraftSplitTransaction(transaction.transactionID, transactionChanges); + } + navigateBackToSplitDetails(); + }; + + if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.DESCRIPTION) { + return ( + { + setDraftSplitTransaction({ + comment: transactionChanges.comment.trim(), + }); + }} + /> + ); + } + + if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.DATE) { + return ( + + ); + } + + if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.AMOUNT) { + return ( + { + const amount = CurrencyUtils.convertToBackendAmount(Number.parseFloat(transactionChanges.amount)); + + setDraftSplitTransaction({ + amount, + currency: transactionChanges.currency, + }); + }} + onNavigateToCurrency={() => { + const activeRoute = encodeURIComponent(Navigation.getActiveRouteWithoutParams()); + if (reportID && transactionAmount && defaultCurrency) { + Navigation.navigate(ROUTES.EDIT_SPLIT_BILL_CURRENCY.getRoute(reportID, reportActionID, defaultCurrency, activeRoute)); + } + }} + /> + ); + } + + if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.MERCHANT) { + return ( + { + setDraftSplitTransaction({merchant: transactionChanges.merchant.trim()}); + }} + isPolicyExpenseChat={false} + /> + ); + } + + if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.CATEGORY) { + return ( + { + setDraftSplitTransaction({category: transactionChanges.category.trim()}); + }} + /> + ); + } + + if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.TAG && transactionTag) { + return ( + { + setDraftSplitTransaction({tag: transactionChanges.tag.trim()}); + }} + tagName="" + /> + ); + } + + return ; +} + +EditSplitBillPage.displayName = 'EditSplitBillPage'; + +export default withOnyx({ + report: { + key: ({route}) => `${ONYXKEYS.COLLECTION.REPORT}${route.params.reportID}`, + }, + reportActions: { + key: ({route}) => `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${route.params.reportID}`, + canEvict: false, + }, + transaction: { + key: ({route, reportActions}: Partial) => { + const reportAction = reportActions?.[`${route?.params.reportActionID.toString()}`]; + const transactionID = (reportAction as OriginalMessageIOU)?.originalMessage.IOUTransactionID ? (reportAction as OriginalMessageIOU).originalMessage.IOUTransactionID : 0; + return `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`; + }, + }, + draftTransaction: { + key: ({route, reportActions}: Partial) => { + const reportAction = reportActions?.[`${route?.params.reportActionID.toString()}`]; + const transactionID = (reportAction as OriginalMessageIOU)?.originalMessage.IOUTransactionID ? (reportAction as OriginalMessageIOU).originalMessage.IOUTransactionID : 0; + return `${ONYXKEYS.COLLECTION.SPLIT_TRANSACTION_DRAFT}${transactionID}`; + }, + }, +})(EditSplitBillPage); From ec094546c91ed468103a291b9cf111d0d96fb38d Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Mon, 29 Jan 2024 15:28:36 +0100 Subject: [PATCH 2/9] add StackScreenProps --- src/libs/Navigation/types.ts | 2 +- src/pages/EditSplitBillPage.tsx | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index b4a77f96cc74..642434b7973a 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -280,7 +280,7 @@ type SplitDetailsNavigatorParamList = { [SCREENS.SPLIT_DETAILS.ROOT]: { reportActionID: string; }; - [SCREENS.SPLIT_DETAILS.EDIT_REQUEST]: undefined; + [SCREENS.SPLIT_DETAILS.EDIT_REQUEST]: {field: string; reportID: string; reportActionID: string}; [SCREENS.SPLIT_DETAILS.EDIT_CURRENCY]: undefined; }; diff --git a/src/pages/EditSplitBillPage.tsx b/src/pages/EditSplitBillPage.tsx index 607dfa552d8b..539077edf4db 100644 --- a/src/pages/EditSplitBillPage.tsx +++ b/src/pages/EditSplitBillPage.tsx @@ -1,15 +1,17 @@ -import type {RouteProp} from '@react-navigation/native'; +import type {StackScreenProps} from '@react-navigation/stack'; import React from 'react'; import type {OnyxEntry} from 'react-native-onyx'; import {withOnyx} from 'react-native-onyx'; import FullPageNotFoundView from '@components/BlockingViews/FullPageNotFoundView'; import * as CurrencyUtils from '@libs/CurrencyUtils'; import Navigation from '@libs/Navigation/Navigation'; +import type {SplitDetailsNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; import * as IOU from '@userActions/IOU'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; +import type SCREENS from '@src/SCREENS'; import type {Report, ReportActions, Transaction} from '@src/types/onyx'; import type {OriginalMessageIOU} from '@src/types/onyx/OriginalMessage'; import EditRequestAmountPage from './EditRequestAmountPage'; @@ -35,9 +37,7 @@ type EditSplitBillOnyxProps = { draftTransaction: OnyxEntry; }; -type EditSplitBillProps = EditSplitBillOnyxProps & { - route: RouteProp<{params: {field: string; reportID: string; reportActionID: string}}>; -}; +type EditSplitBillProps = EditSplitBillOnyxProps & StackScreenProps; function EditSplitBillPage({route, transaction, draftTransaction, report}: EditSplitBillProps) { const fieldToEdit = route.params.field; From 36ba2954183a2c948dcd82b48b3ee979e73b7088 Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Tue, 30 Jan 2024 11:53:45 +0100 Subject: [PATCH 3/9] fix PR comments --- src/libs/Navigation/types.ts | 6 +++++- src/libs/TransactionUtils.ts | 2 ++ src/pages/EditSplitBillPage.tsx | 28 +++++++++++++--------------- 3 files changed, 20 insertions(+), 16 deletions(-) diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index 642434b7973a..c218407de9eb 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -280,7 +280,11 @@ type SplitDetailsNavigatorParamList = { [SCREENS.SPLIT_DETAILS.ROOT]: { reportActionID: string; }; - [SCREENS.SPLIT_DETAILS.EDIT_REQUEST]: {field: string; reportID: string; reportActionID: string}; + [SCREENS.SPLIT_DETAILS.EDIT_REQUEST]: { + field: string; + reportID: string; + reportActionID: string; + }; [SCREENS.SPLIT_DETAILS.EDIT_CURRENCY]: undefined; }; diff --git a/src/libs/TransactionUtils.ts b/src/libs/TransactionUtils.ts index b1a900675949..b7a8814f4a56 100644 --- a/src/libs/TransactionUtils.ts +++ b/src/libs/TransactionUtils.ts @@ -597,3 +597,5 @@ export { getRecentTransactions, hasViolation, }; + +export type {TransactionChanges}; diff --git a/src/pages/EditSplitBillPage.tsx b/src/pages/EditSplitBillPage.tsx index 539077edf4db..928f2f14ddbd 100644 --- a/src/pages/EditSplitBillPage.tsx +++ b/src/pages/EditSplitBillPage.tsx @@ -7,6 +7,7 @@ import * as CurrencyUtils from '@libs/CurrencyUtils'; import Navigation from '@libs/Navigation/Navigation'; import type {SplitDetailsNavigatorParamList} from '@libs/Navigation/types'; import * as ReportUtils from '@libs/ReportUtils'; +import type {TransactionChanges} from '@libs/TransactionUtils'; import * as IOU from '@userActions/IOU'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; @@ -40,19 +41,17 @@ type EditSplitBillOnyxProps = { type EditSplitBillProps = EditSplitBillOnyxProps & StackScreenProps; function EditSplitBillPage({route, transaction, draftTransaction, report}: EditSplitBillProps) { - const fieldToEdit = route.params.field; - const reportID = route.params.reportID; - const reportActionID = route.params.reportActionID; - - const draftTransactionDetails = ReportUtils.getTransactionDetails(draftTransaction); - const transactionDetails = ReportUtils.getTransactionDetails(transaction); - const transactionAmount = draftTransactionDetails ? draftTransactionDetails.amount : transactionDetails?.amount; - const transactionCurrency = draftTransactionDetails ? draftTransactionDetails.currency : transactionDetails?.currency; - const transactionDescription = draftTransactionDetails ? draftTransactionDetails.comment : transactionDetails?.comment; - const transactionMerchant = draftTransactionDetails ? draftTransactionDetails.merchant : transactionDetails?.merchant; - const transactionCreated = draftTransactionDetails ? draftTransactionDetails.created : transactionDetails?.created; - const transactionCategory = draftTransactionDetails ? draftTransactionDetails.category : transactionDetails?.category; - const transactionTag = draftTransactionDetails ? draftTransactionDetails.tag : transactionDetails?.tag; + const {field: fieldToEdit, reportID, reportActionID} = route.params; + + const { + amount: transactionAmount, + currency: transactionCurrency, + comment: transactionDescription, + merchant: transactionMerchant, + created: transactionCreated, + category: transactionCategory, + tag: transactionTag, + } = ReportUtils.getTransactionDetails(draftTransaction ?? transaction) ?? {}; const defaultCurrency = transactionCurrency; @@ -60,8 +59,7 @@ function EditSplitBillPage({route, transaction, draftTransaction, report}: EditS Navigation.navigate(ROUTES.SPLIT_BILL_DETAILS.getRoute(reportID, reportActionID)); } - // eslint-disable-next-line @typescript-eslint/ban-types - const setDraftSplitTransaction = (transactionChanges: Object) => { + const setDraftSplitTransaction = (transactionChanges: TransactionChanges) => { if (transaction) { IOU.setDraftSplitTransaction(transaction.transactionID, transactionChanges); } From 996cdee3c946fa51262e933b991d34b3c2ae09de Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Wed, 7 Feb 2024 14:19:47 +0100 Subject: [PATCH 4/9] fix PR comments --- src/pages/EditRequestTagPage.js | 7 ++++++- src/pages/EditSplitBillPage.tsx | 4 ++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/pages/EditRequestTagPage.js b/src/pages/EditRequestTagPage.js index 8ecc4a953065..b2f576c499a6 100644 --- a/src/pages/EditRequestTagPage.js +++ b/src/pages/EditRequestTagPage.js @@ -16,12 +16,16 @@ const propTypes = { policyID: PropTypes.string.isRequired, /** The tag name to which the default tag belongs to */ - tagName: PropTypes.string.isRequired, + tagName: PropTypes.string, /** Callback to fire when the Save button is pressed */ onSubmit: PropTypes.func.isRequired, }; +const defaultProps = { + tagName: '', +}; + function EditRequestTagPage({defaultTag, policyID, tagName, onSubmit}) { const styles = useThemeStyles(); const {translate} = useLocalize(); @@ -58,6 +62,7 @@ function EditRequestTagPage({defaultTag, policyID, tagName, onSubmit}) { } EditRequestTagPage.propTypes = propTypes; +EditRequestTagPage.defaultProps = defaultProps; EditRequestTagPage.displayName = 'EditRequestTagPage'; export default EditRequestTagPage; diff --git a/src/pages/EditSplitBillPage.tsx b/src/pages/EditSplitBillPage.tsx index 928f2f14ddbd..d7ded5cbb081 100644 --- a/src/pages/EditSplitBillPage.tsx +++ b/src/pages/EditSplitBillPage.tsx @@ -139,11 +139,10 @@ function EditSplitBillPage({route, transaction, draftTransaction, report}: EditS return ( { setDraftSplitTransaction({tag: transactionChanges.tag.trim()}); }} - tagName="" /> ); } @@ -165,6 +164,7 @@ export default withOnyx({ key: ({route, reportActions}: Partial) => { const reportAction = reportActions?.[`${route?.params.reportActionID.toString()}`]; const transactionID = (reportAction as OriginalMessageIOU)?.originalMessage.IOUTransactionID ? (reportAction as OriginalMessageIOU).originalMessage.IOUTransactionID : 0; + console.log('editsplitbillpage render: ', reportAction, transactionID, route.params.reportID); return `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`; }, }, From 1009f972d4bc490940fe9c0297d71bda39d891eb Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Fri, 9 Feb 2024 11:41:59 +0100 Subject: [PATCH 5/9] delete console logs --- src/pages/EditSplitBillPage.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/EditSplitBillPage.tsx b/src/pages/EditSplitBillPage.tsx index de19a6028278..ff463dc6ac91 100644 --- a/src/pages/EditSplitBillPage.tsx +++ b/src/pages/EditSplitBillPage.tsx @@ -149,7 +149,6 @@ export default withOnyx({ key: ({route, reportActions}: Partial) => { const reportAction = reportActions?.[`${route?.params.reportActionID.toString()}`]; const transactionID = (reportAction as OriginalMessageIOU)?.originalMessage.IOUTransactionID ? (reportAction as OriginalMessageIOU).originalMessage.IOUTransactionID : 0; - console.log('editsplitbillpage render: ', reportAction, transactionID, route.params.reportID); return `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`; }, }, From f74060c5bbeac4263bac896db90248224254fd3c Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Fri, 9 Feb 2024 11:48:08 +0100 Subject: [PATCH 6/9] fix PR comments --- src/pages/EditRequestMerchantPage.js | 7 ++++++- src/pages/EditSplitBillPage.tsx | 1 - 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/pages/EditRequestMerchantPage.js b/src/pages/EditRequestMerchantPage.js index e5966bad2d2b..9ed8e287a879 100644 --- a/src/pages/EditRequestMerchantPage.js +++ b/src/pages/EditRequestMerchantPage.js @@ -20,7 +20,11 @@ const propTypes = { onSubmit: PropTypes.func.isRequired, /** Boolean to enable validation */ - isPolicyExpenseChat: PropTypes.bool.isRequired, + isPolicyExpenseChat: PropTypes.bool, +}; + +const defaultProps = { + isPolicyExpenseChat: false, }; function EditRequestMerchantPage({defaultMerchant, onSubmit, isPolicyExpenseChat}) { @@ -74,6 +78,7 @@ function EditRequestMerchantPage({defaultMerchant, onSubmit, isPolicyExpenseChat } EditRequestMerchantPage.propTypes = propTypes; +EditRequestMerchantPage.defaultProps = defaultProps; EditRequestMerchantPage.displayName = 'EditRequestMerchantPage'; export default EditRequestMerchantPage; diff --git a/src/pages/EditSplitBillPage.tsx b/src/pages/EditSplitBillPage.tsx index ff463dc6ac91..a75973bbdcb4 100644 --- a/src/pages/EditSplitBillPage.tsx +++ b/src/pages/EditSplitBillPage.tsx @@ -103,7 +103,6 @@ function EditSplitBillPage({route, transaction, draftTransaction, report}: EditS onSubmit={(transactionChanges) => { setDraftSplitTransaction({merchant: transactionChanges.merchant.trim()}); }} - isPolicyExpenseChat={false} /> ); } From e8e03851ac29291398948201e648914a8c57dba9 Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Tue, 13 Feb 2024 11:03:39 +0100 Subject: [PATCH 7/9] fix introduced bugs --- src/pages/EditSplitBillPage.tsx | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/pages/EditSplitBillPage.tsx b/src/pages/EditSplitBillPage.tsx index a75973bbdcb4..566e887cd451 100644 --- a/src/pages/EditSplitBillPage.tsx +++ b/src/pages/EditSplitBillPage.tsx @@ -17,7 +17,6 @@ import type {Report, ReportActions, Transaction} from '@src/types/onyx'; import type {OriginalMessageIOU} from '@src/types/onyx/OriginalMessage'; import EditRequestAmountPage from './EditRequestAmountPage'; import EditRequestCategoryPage from './EditRequestCategoryPage'; -import EditRequestCreatedPage from './EditRequestCreatedPage'; import EditRequestMerchantPage from './EditRequestMerchantPage'; import EditRequestTagPage from './EditRequestTagPage'; @@ -46,7 +45,6 @@ function EditSplitBillPage({route, transaction, draftTransaction, report}: EditS amount: transactionAmount, currency: transactionCurrency, merchant: transactionMerchant, - created: transactionCreated, category: transactionCategory, tag: transactionTag, } = ReportUtils.getTransactionDetails(draftTransaction ?? transaction) ?? {}; @@ -64,15 +62,6 @@ function EditSplitBillPage({route, transaction, draftTransaction, report}: EditS navigateBackToSplitDetails(); }; - if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.DATE) { - return ( - - ); - } - if (fieldToEdit === CONST.EDIT_REQUEST_FIELD.AMOUNT) { return ( { setDraftSplitTransaction({tag: transactionChanges.tag.trim()}); From 3fb76d000e221f6613cd789d5466c94b9bf70f94 Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Tue, 13 Feb 2024 11:24:49 +0100 Subject: [PATCH 8/9] fix bug --- src/libs/Navigation/types.ts | 1 + src/pages/EditSplitBillPage.tsx | 5 ++--- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libs/Navigation/types.ts b/src/libs/Navigation/types.ts index e3423b7c7d2f..5fb50eba29fc 100644 --- a/src/libs/Navigation/types.ts +++ b/src/libs/Navigation/types.ts @@ -335,6 +335,7 @@ type SplitDetailsNavigatorParamList = { field: string; reportID: string; reportActionID: string; + currency: string; }; [SCREENS.SPLIT_DETAILS.EDIT_CURRENCY]: undefined; }; diff --git a/src/pages/EditSplitBillPage.tsx b/src/pages/EditSplitBillPage.tsx index 566e887cd451..b4ca4763ced2 100644 --- a/src/pages/EditSplitBillPage.tsx +++ b/src/pages/EditSplitBillPage.tsx @@ -39,7 +39,7 @@ type EditSplitBillOnyxProps = { type EditSplitBillProps = EditSplitBillOnyxProps & StackScreenProps; function EditSplitBillPage({route, transaction, draftTransaction, report}: EditSplitBillProps) { - const {field: fieldToEdit, reportID, reportActionID} = route.params; + const {field: fieldToEdit, reportID, reportActionID, currency} = route.params; const { amount: transactionAmount, @@ -49,8 +49,7 @@ function EditSplitBillPage({route, transaction, draftTransaction, report}: EditS tag: transactionTag, } = ReportUtils.getTransactionDetails(draftTransaction ?? transaction) ?? {}; - const defaultCurrency = transactionCurrency; - + const defaultCurrency = currency ?? transactionCurrency; function navigateBackToSplitDetails() { Navigation.navigate(ROUTES.SPLIT_BILL_DETAILS.getRoute(reportID, reportActionID)); } From eec89d28f0032a844d0d62daa2c2f651730ec986 Mon Sep 17 00:00:00 2001 From: Jakub Szymczak Date: Tue, 13 Feb 2024 11:27:03 +0100 Subject: [PATCH 9/9] fixbugs --- src/pages/EditSplitBillPage.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/pages/EditSplitBillPage.tsx b/src/pages/EditSplitBillPage.tsx index b4ca4763ced2..c859df7c407a 100644 --- a/src/pages/EditSplitBillPage.tsx +++ b/src/pages/EditSplitBillPage.tsx @@ -76,9 +76,7 @@ function EditSplitBillPage({route, transaction, draftTransaction, report}: EditS }} onNavigateToCurrency={() => { const activeRoute = encodeURIComponent(Navigation.getActiveRouteWithoutParams()); - if (reportID && transactionAmount && defaultCurrency) { - Navigation.navigate(ROUTES.EDIT_SPLIT_BILL_CURRENCY.getRoute(reportID, reportActionID, defaultCurrency, activeRoute)); - } + Navigation.navigate(ROUTES.EDIT_SPLIT_BILL_CURRENCY.getRoute(reportID, reportActionID, defaultCurrency, activeRoute)); }} /> );