diff --git a/src/libs/actions/Transaction.ts b/src/libs/actions/Transaction.ts index 3166d0dfcb8f..e42de53862ba 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 => {