From 89751857bcc94e05c4f8a54b1a06888fa0559ad2 Mon Sep 17 00:00:00 2001 From: dominictb Date: Tue, 2 Jul 2024 08:54:32 +0700 Subject: [PATCH 1/2] fix: include dismiss violation action copy action --- src/libs/actions/Transaction.ts | 11 +++++++++++ .../home/report/ContextMenu/ContextMenuActions.tsx | 5 +++++ 2 files changed, 16 insertions(+) diff --git a/src/libs/actions/Transaction.ts b/src/libs/actions/Transaction.ts index 3166d0dfcb8f..ba3a95e4fa8d 100644 --- a/src/libs/actions/Transaction.ts +++ b/src/libs/actions/Transaction.ts @@ -358,6 +358,16 @@ function dismissDuplicateTransactionViolation(transactionIDs: string[], dissmiss failureData.push(...failureDataTransaction); failureData.push(...failureReportActions); + const successData: OnyxUpdate[] = transactionsReportActions.map((action, index)=>({ + onyxMethod: Onyx.METHOD.MERGE, + key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${action?.childReportID ?? '-1'}`, + value: { + [optimisticDissmidedViolationReportActions[index].reportActionID]: { + pendingAction: null + }, + }, + })) + const params: DismissViolationParams = { name: CONST.VIOLATIONS.DUPLICATED_TRANSACTION, transactionIDList: transactionIDs.join(','), @@ -365,6 +375,7 @@ function dismissDuplicateTransactionViolation(transactionIDs: string[], dissmiss API.write(WRITE_COMMANDS.DISMISS_VIOLATION, params, { optimisticData, + successData, failureData, }); } diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx index bf634b4ac8ae..07973a971865 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx @@ -400,6 +400,11 @@ const ContextMenuActions: ContextMenuAction[] = [ Clipboard.setString(Localize.translateLocal('iou.heldExpense')); } else if (reportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.UNHOLD) { Clipboard.setString(Localize.translateLocal('iou.unheldExpense')); + } else if (reportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.DISMISSED_VIOLATION) { + const originalMessage = ReportActionsUtils.getOriginalMessage(reportAction) as ReportAction['originalMessage']; + const reason = originalMessage?.reason; + const violationName = originalMessage?.violationName; + Clipboard.setString(Localize.translateLocal(`violationDismissal.${violationName}.${reason}` as TranslationPaths)); } else if (content) { setClipboardMessage( content.replace(/()(.*?)(<\/mention-user>)/gi, (match, openTag: string, innerContent: string, closeTag: string): string => { From b14819382f53127dcbfc66ea17535831b25b3b30 Mon Sep 17 00:00:00 2001 From: dominictb Date: Tue, 2 Jul 2024 08:56:48 +0700 Subject: [PATCH 2/2] fix: clear pending action after dismiss violation API call --- src/libs/actions/Transaction.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libs/actions/Transaction.ts b/src/libs/actions/Transaction.ts index ba3a95e4fa8d..e42de53862ba 100644 --- a/src/libs/actions/Transaction.ts +++ b/src/libs/actions/Transaction.ts @@ -358,15 +358,15 @@ function dismissDuplicateTransactionViolation(transactionIDs: string[], dissmiss failureData.push(...failureDataTransaction); failureData.push(...failureReportActions); - const successData: OnyxUpdate[] = transactionsReportActions.map((action, index)=>({ + const successData: OnyxUpdate[] = transactionsReportActions.map((action, index) => ({ onyxMethod: Onyx.METHOD.MERGE, key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${action?.childReportID ?? '-1'}`, value: { [optimisticDissmidedViolationReportActions[index].reportActionID]: { - pendingAction: null + pendingAction: null, }, }, - })) + })); const params: DismissViolationParams = { name: CONST.VIOLATIONS.DUPLICATED_TRANSACTION,