From 3b81f84d362174b2dd51f21cdf2e9da05064bd0a Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Tue, 24 Sep 2024 15:30:25 +0700 Subject: [PATCH 1/9] fix: Combined report is more grayed --- .../ReportActionItem/MoneyRequestView.tsx | 44 ++++++++++--------- src/libs/actions/IOU.ts | 6 +++ .../report/ReportActionItemContentCreated.tsx | 20 +++++---- 3 files changed, 41 insertions(+), 29 deletions(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index 9559a19d08a6c..9acf547727b71 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -275,7 +275,7 @@ function MoneyRequestView({report, shouldShowAnimatedBackground, readonly = fals receiptURIs = ReceiptUtils.getThumbnailAndImageURIs(updatedTransaction ?? transaction); } const pendingAction = transaction?.pendingAction; - const getPendingFieldAction = (fieldPath: TransactionPendingFieldsKey) => transaction?.pendingFields?.[fieldPath] ?? pendingAction; + const getPendingFieldAction = (fieldPath: TransactionPendingFieldsKey) => (pendingAction ? undefined : transaction?.pendingFields?.[fieldPath] ?? pendingAction); const getErrorForField = useCallback( (field: ViolationField, data?: OnyxTypes.TransactionViolation['data'], policyHasDependentTags = false, tagValue?: string) => { @@ -437,10 +437,12 @@ function MoneyRequestView({report, shouldShowAnimatedBackground, readonly = fals {shouldShowAnimatedBackground && } <> {shouldShowReceiptAudit && ( - + + + )} {(hasReceipt || errors) && ( )} {shouldShowReceiptEmptyState && ( - - Navigation.navigate( - ROUTES.MONEY_REQUEST_STEP_SCAN.getRoute( - CONST.IOU.ACTION.EDIT, - iouType, - transaction?.transactionID ?? '-1', - report?.reportID ?? '-1', - Navigation.getActiveRouteWithoutParams(), - ), - ) - } - /> + + + Navigation.navigate( + ROUTES.MONEY_REQUEST_STEP_SCAN.getRoute( + CONST.IOU.ACTION.EDIT, + iouType, + transaction?.transactionID ?? '-1', + report?.reportID ?? '-1', + Navigation.getActiveRouteWithoutParams(), + ), + ) + } + /> + )} {!shouldShowReceiptEmptyState && !hasReceipt && } {shouldShowAuditMessage && } diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index daaa766145ed5..34042e0a30c42 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -7652,6 +7652,9 @@ function replaceReceipt(transactionID: string, file: File, source: string) { value: { receipt: receiptOptimistic, filename: file.name, + pendingFields: { + receipt: CONST.RED_BRICK_ROAD_PENDING_ACTION.UPDATE, + }, }, }, ]; @@ -7663,6 +7666,9 @@ function replaceReceipt(transactionID: string, file: File, source: string) { receipt: !isEmptyObject(oldReceipt) ? oldReceipt : null, filename: transaction?.filename, errors: getReceiptError(receiptOptimistic, file.name), + pendingFields: { + receipt: null, + }, }, }, ]; diff --git a/src/pages/home/report/ReportActionItemContentCreated.tsx b/src/pages/home/report/ReportActionItemContentCreated.tsx index 21bb6471f5b1c..e4b8a25d8bdcc 100644 --- a/src/pages/home/report/ReportActionItemContentCreated.tsx +++ b/src/pages/home/report/ReportActionItemContentCreated.tsx @@ -104,15 +104,17 @@ function ReportActionItemContentCreated({contextValue, parentReportAction, trans } return ( - - - - {renderThreadDivider} - - + + + + + {renderThreadDivider} + + + ); } From b47487330df0ed73ba7c238f01191a9589696c55 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Tue, 24 Sep 2024 15:35:51 +0700 Subject: [PATCH 2/9] clean code --- src/components/ReportActionItem/MoneyRequestView.tsx | 2 +- src/libs/actions/IOU.ts | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index 9acf547727b71..b4656581c3b2d 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -275,7 +275,7 @@ function MoneyRequestView({report, shouldShowAnimatedBackground, readonly = fals receiptURIs = ReceiptUtils.getThumbnailAndImageURIs(updatedTransaction ?? transaction); } const pendingAction = transaction?.pendingAction; - const getPendingFieldAction = (fieldPath: TransactionPendingFieldsKey) => (pendingAction ? undefined : transaction?.pendingFields?.[fieldPath] ?? pendingAction); + const getPendingFieldAction = (fieldPath: TransactionPendingFieldsKey) => (pendingAction ? undefined : transaction?.pendingFields?.[fieldPath]); const getErrorForField = useCallback( (field: ViolationField, data?: OnyxTypes.TransactionViolation['data'], policyHasDependentTags = false, tagValue?: string) => { diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index 34042e0a30c42..28cd706c08886 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -7617,7 +7617,12 @@ function detachReceipt(transactionID: string) { { onyxMethod: Onyx.METHOD.SET, key: `${ONYXKEYS.COLLECTION.TRANSACTION}${transactionID}`, - value: newTransaction, + value: { + ...newTransaction, + pendingFields: { + receipt: CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE, + }, + }, }, ]; @@ -7628,6 +7633,9 @@ function detachReceipt(transactionID: string) { value: { ...(transaction ?? null), errors: ErrorUtils.getMicroSecondOnyxErrorWithTranslationKey('iou.error.receiptDeleteFailureError'), + pendingFields: { + receipt: null, + }, }, }, ]; From 761cd4e72f33584907af2392898f98b44019139e Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Tue, 24 Sep 2024 16:02:40 +0700 Subject: [PATCH 3/9] fix lint --- .../ReportActionItem/MoneyReportView.tsx | 7 +++-- src/libs/actions/IOU.ts | 29 +++++++++++++++++-- .../report/ReportActionItemContentCreated.tsx | 2 ++ 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/src/components/ReportActionItem/MoneyReportView.tsx b/src/components/ReportActionItem/MoneyReportView.tsx index 8546aa8165c97..8cf1079488266 100644 --- a/src/components/ReportActionItem/MoneyReportView.tsx +++ b/src/components/ReportActionItem/MoneyReportView.tsx @@ -25,6 +25,7 @@ import * as reportActions from '@src/libs/actions/Report'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type {Policy, PolicyReportField, Report} from '@src/types/onyx'; +import {PendingAction} from '@src/types/onyx/OnyxCommon'; type MoneyReportViewProps = { /** The report currently being looked at */ @@ -41,9 +42,11 @@ type MoneyReportViewProps = { /** Flag to show, hide the thread divider line */ shouldHideThreadDividerLine: boolean; + + pendingAction?: PendingAction; }; -function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTotal = true, shouldHideThreadDividerLine}: MoneyReportViewProps) { +function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTotal = true, shouldHideThreadDividerLine, pendingAction}: MoneyReportViewProps) { const theme = useTheme(); const styles = useThemeStyles(); const StyleUtils = useStyleUtils(); @@ -118,7 +121,7 @@ function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTo return ( @@ -174,6 +175,7 @@ function ReportActionItemContentCreated({contextValue, parentReportAction, trans )} From c1b964539e025dac5761637c38dde5e688a51af6 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Tue, 24 Sep 2024 16:28:04 +0700 Subject: [PATCH 4/9] fix lint --- src/components/ReportActionItem/MoneyReportView.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ReportActionItem/MoneyReportView.tsx b/src/components/ReportActionItem/MoneyReportView.tsx index 8cf1079488266..a8868267348df 100644 --- a/src/components/ReportActionItem/MoneyReportView.tsx +++ b/src/components/ReportActionItem/MoneyReportView.tsx @@ -25,7 +25,7 @@ import * as reportActions from '@src/libs/actions/Report'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type {Policy, PolicyReportField, Report} from '@src/types/onyx'; -import {PendingAction} from '@src/types/onyx/OnyxCommon'; +import type {PendingAction} from '@src/types/onyx/OnyxCommon'; type MoneyReportViewProps = { /** The report currently being looked at */ From 5683250ce28cab491d3d18ba145589e9537c23fc Mon Sep 17 00:00:00 2001 From: nkdengineer <161821005+nkdengineer@users.noreply.github.com> Date: Thu, 26 Sep 2024 10:57:30 +0700 Subject: [PATCH 5/9] Update src/components/ReportActionItem/MoneyReportView.tsx Co-authored-by: dukenv0307 <129500732+dukenv0307@users.noreply.github.com> --- src/components/ReportActionItem/MoneyReportView.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ReportActionItem/MoneyReportView.tsx b/src/components/ReportActionItem/MoneyReportView.tsx index a8868267348df..c3e8ed30519b8 100644 --- a/src/components/ReportActionItem/MoneyReportView.tsx +++ b/src/components/ReportActionItem/MoneyReportView.tsx @@ -121,7 +121,7 @@ function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTo return ( Date: Thu, 26 Sep 2024 10:57:37 +0700 Subject: [PATCH 6/9] Update src/components/ReportActionItem/MoneyRequestView.tsx Co-authored-by: dukenv0307 <129500732+dukenv0307@users.noreply.github.com> --- src/components/ReportActionItem/MoneyRequestView.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/ReportActionItem/MoneyRequestView.tsx b/src/components/ReportActionItem/MoneyRequestView.tsx index b4656581c3b2d..80ef564caaff2 100644 --- a/src/components/ReportActionItem/MoneyRequestView.tsx +++ b/src/components/ReportActionItem/MoneyRequestView.tsx @@ -275,7 +275,7 @@ function MoneyRequestView({report, shouldShowAnimatedBackground, readonly = fals receiptURIs = ReceiptUtils.getThumbnailAndImageURIs(updatedTransaction ?? transaction); } const pendingAction = transaction?.pendingAction; - const getPendingFieldAction = (fieldPath: TransactionPendingFieldsKey) => (pendingAction ? undefined : transaction?.pendingFields?.[fieldPath]); + const getPendingFieldAction = (fieldPath: TransactionPendingFieldsKey) => (!pendingAction && transaction?.pendingFields?.[fieldPath]); const getErrorForField = useCallback( (field: ViolationField, data?: OnyxTypes.TransactionViolation['data'], policyHasDependentTags = false, tagValue?: string) => { From 419d5c1e7d5419deef64c8b225372641882cf60d Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Thu, 26 Sep 2024 16:30:10 +0700 Subject: [PATCH 7/9] remove useless line --- src/libs/actions/IOU.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/src/libs/actions/IOU.ts b/src/libs/actions/IOU.ts index 6e8a28fd8be5d..60fa2eaa9bc13 100644 --- a/src/libs/actions/IOU.ts +++ b/src/libs/actions/IOU.ts @@ -7637,7 +7637,6 @@ function detachReceipt(transactionID: string) { }, }, ]; - const failureData: OnyxUpdate[] = [ { onyxMethod: Onyx.METHOD.MERGE, From c9dd459e3c132f507547c9506c3f53ffd0f38a23 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Thu, 26 Sep 2024 17:01:18 +0700 Subject: [PATCH 8/9] fix: ts check --- src/components/ReportActionItem/MoneyReportView.tsx | 2 +- src/components/ReportActionItem/MoneyRequestView.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ReportActionItem/MoneyReportView.tsx b/src/components/ReportActionItem/MoneyReportView.tsx index 525ca4eeac5a1..11a6f99ae4507 100644 --- a/src/components/ReportActionItem/MoneyReportView.tsx +++ b/src/components/ReportActionItem/MoneyReportView.tsx @@ -121,7 +121,7 @@ function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTo return ( (!pendingAction && transaction?.pendingFields?.[fieldPath]); + const getPendingFieldAction = (fieldPath: TransactionPendingFieldsKey) => (pendingAction ? undefined : transaction?.pendingFields?.[fieldPath]); const getErrorForField = useCallback( (field: ViolationField, data?: OnyxTypes.TransactionViolation['data'], policyHasDependentTags = false, tagValue?: string) => { From c12613ce176fe27f325a6189ed4025377144f325 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Wed, 2 Oct 2024 17:13:50 +0700 Subject: [PATCH 9/9] add comment --- src/components/ReportActionItem/MoneyReportView.tsx | 1 + src/components/ReportActionItem/MoneyRequestView.tsx | 1 + 2 files changed, 2 insertions(+) diff --git a/src/components/ReportActionItem/MoneyReportView.tsx b/src/components/ReportActionItem/MoneyReportView.tsx index 11a6f99ae4507..1aebfd83c450b 100644 --- a/src/components/ReportActionItem/MoneyReportView.tsx +++ b/src/components/ReportActionItem/MoneyReportView.tsx @@ -121,6 +121,7 @@ function MoneyReportView({report, policy, isCombinedReport = false, shouldShowTo return ( (pendingAction ? undefined : transaction?.pendingFields?.[fieldPath]); const getErrorForField = useCallback(