From a07dc2807247493b33aebfd7c05b23a0ab0d6e93 Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Wed, 15 Nov 2023 10:37:18 +0000 Subject: [PATCH 1/4] Allow editing Expensify card transactions (not amount) --- src/components/ReportActionItem/MoneyRequestView.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.js b/src/components/ReportActionItem/MoneyRequestView.js index f1fc51bd2be8..13be24e9bac9 100644 --- a/src/components/ReportActionItem/MoneyRequestView.js +++ b/src/components/ReportActionItem/MoneyRequestView.js @@ -104,7 +104,7 @@ function MoneyRequestView({report, parentReport, policyCategories, shouldShowHor // Flags for allowing or disallowing editing a money request const isSettled = ReportUtils.isSettled(moneyRequestReport.reportID); - const canEdit = ReportUtils.canEditMoneyRequest(parentReportAction) && !isExpensifyCardTransaction; + const canEdit = ReportUtils.canEditMoneyRequest(parentReportAction); // A flag for verifying that the current report is a sub-report of a workspace chat const isPolicyExpenseChat = useMemo(() => ReportUtils.isPolicyExpenseChat(ReportUtils.getRootParentReport(report)), [report]); @@ -179,7 +179,7 @@ function MoneyRequestView({report, parentReport, policyCategories, shouldShowHor titleIcon={Expensicons.Checkmark} description={amountDescription} titleStyle={styles.newKansasLarge} - interactive={canEdit && !isSettled} + interactive={canEdit && !isSettled && !isExpensifyCardTransaction} shouldShowRightIcon={canEdit && !isSettled} onPress={() => Navigation.navigate(ROUTES.EDIT_REQUEST.getRoute(report.reportID, CONST.EDIT_REQUEST_FIELD.AMOUNT))} brickRoadIndicator={hasErrors && transactionAmount === 0 ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : ''} @@ -266,7 +266,6 @@ function MoneyRequestView({report, parentReport, policyCategories, shouldShowHor description={translate('iou.card')} title={cardProgramName} titleStyle={styles.flex1} - interactive={canEdit} /> )} From e87465ab18bc7dc594acf4782461af1947044950 Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Wed, 15 Nov 2023 11:10:19 +0000 Subject: [PATCH 2/4] Remove right icon from Amount row --- src/components/ReportActionItem/MoneyRequestView.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.js b/src/components/ReportActionItem/MoneyRequestView.js index 13be24e9bac9..21f2af57fc76 100644 --- a/src/components/ReportActionItem/MoneyRequestView.js +++ b/src/components/ReportActionItem/MoneyRequestView.js @@ -105,6 +105,7 @@ function MoneyRequestView({report, parentReport, policyCategories, shouldShowHor // Flags for allowing or disallowing editing a money request const isSettled = ReportUtils.isSettled(moneyRequestReport.reportID); const canEdit = ReportUtils.canEditMoneyRequest(parentReportAction); + const canEditAmount = canEdit && !isSettled && !isExpensifyCardTransaction; // A flag for verifying that the current report is a sub-report of a workspace chat const isPolicyExpenseChat = useMemo(() => ReportUtils.isPolicyExpenseChat(ReportUtils.getRootParentReport(report)), [report]); @@ -179,8 +180,8 @@ function MoneyRequestView({report, parentReport, policyCategories, shouldShowHor titleIcon={Expensicons.Checkmark} description={amountDescription} titleStyle={styles.newKansasLarge} - interactive={canEdit && !isSettled && !isExpensifyCardTransaction} - shouldShowRightIcon={canEdit && !isSettled} + interactive={canEditAmount} + shouldShowRightIcon={canEditAmount} onPress={() => Navigation.navigate(ROUTES.EDIT_REQUEST.getRoute(report.reportID, CONST.EDIT_REQUEST_FIELD.AMOUNT))} brickRoadIndicator={hasErrors && transactionAmount === 0 ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : ''} error={hasErrors && transactionAmount === 0 ? translate('common.error.enterAmount') : ''} From 7461fc0b4545285d205fa717738bcb987e1f5e20 Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Fri, 17 Nov 2023 13:51:15 +0000 Subject: [PATCH 3/4] allow editing for all card transactions --- src/components/ReportActionItem/MoneyRequestView.js | 10 +++++----- src/libs/TransactionUtils.ts | 11 +++++++++++ 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.js b/src/components/ReportActionItem/MoneyRequestView.js index 21f2af57fc76..fab63418b2f7 100644 --- a/src/components/ReportActionItem/MoneyRequestView.js +++ b/src/components/ReportActionItem/MoneyRequestView.js @@ -99,13 +99,13 @@ function MoneyRequestView({report, parentReport, policyCategories, shouldShowHor formattedTransactionAmount = translate('common.tbd'); } const formattedOriginalAmount = transactionOriginalAmount && transactionOriginalCurrency && CurrencyUtils.convertToDisplayString(transactionOriginalAmount, transactionOriginalCurrency); - const isExpensifyCardTransaction = TransactionUtils.isExpensifyCardTransaction(transaction); - const cardProgramName = isExpensifyCardTransaction ? CardUtils.getCardDescription(transactionCardID) : ''; + const isCardTransaction = TransactionUtils.isCardTransaction(transaction); + const cardProgramName = isCardTransaction ? CardUtils.getCardDescription(transactionCardID) : ''; // Flags for allowing or disallowing editing a money request const isSettled = ReportUtils.isSettled(moneyRequestReport.reportID); const canEdit = ReportUtils.canEditMoneyRequest(parentReportAction); - const canEditAmount = canEdit && !isSettled && !isExpensifyCardTransaction; + const canEditAmount = canEdit && !isSettled && !isCardTransaction; // A flag for verifying that the current report is a sub-report of a workspace chat const isPolicyExpenseChat = useMemo(() => ReportUtils.isPolicyExpenseChat(ReportUtils.getRootParentReport(report)), [report]); @@ -121,7 +121,7 @@ function MoneyRequestView({report, parentReport, policyCategories, shouldShowHor let amountDescription = `${translate('iou.amount')}`; - if (isExpensifyCardTransaction) { + if (isCardTransaction) { if (formattedOriginalAmount) { amountDescription += ` • ${translate('iou.original')} ${formattedOriginalAmount}`; } @@ -261,7 +261,7 @@ function MoneyRequestView({report, parentReport, policyCategories, shouldShowHor /> )} - {isExpensifyCardTransaction && ( + {isCardTransaction && ( 0; +} + /** * Check if the transaction status is set to Pending. */ @@ -475,6 +485,7 @@ export { getValidWaypoints, isDistanceRequest, isExpensifyCardTransaction, + isCardTransaction, isPending, isPosted, getWaypoints, From 9b11ea3f93c0d8febdf3a9bb0f7847b97df44525 Mon Sep 17 00:00:00 2001 From: Georgia Monahan Date: Wed, 22 Nov 2023 12:39:01 +0000 Subject: [PATCH 4/4] syntax update --- src/libs/TransactionUtils.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/libs/TransactionUtils.ts b/src/libs/TransactionUtils.ts index f17b53595df4..baf4ba6fb2f8 100644 --- a/src/libs/TransactionUtils.ts +++ b/src/libs/TransactionUtils.ts @@ -334,10 +334,7 @@ function isExpensifyCardTransaction(transaction: Transaction): boolean { * Determine whether a transaction is made with a card. */ function isCardTransaction(transaction: Transaction): boolean { - if (!transaction.cardID) { - return false; - } - return transaction.cardID > 0; + return (transaction?.cardID ?? 0) > 0; } /**