diff --git a/src/libs/ReportActionsUtils.js b/src/libs/ReportActionsUtils.js index ca78dcc62a21..c90efb54785d 100644 --- a/src/libs/ReportActionsUtils.js +++ b/src/libs/ReportActionsUtils.js @@ -584,6 +584,20 @@ function isSplitBillAction(reportAction) { return lodashGet(reportAction, 'originalMessage.type', '') === CONST.IOU.REPORT_ACTION_TYPE.SPLIT; } +/** + * + * @param {*} reportAction + * @returns {Boolean} + */ +function isTaskAction(reportAction) { + const reportActionName = lodashGet(reportAction, 'actionName', ''); + return ( + reportActionName === CONST.REPORT.ACTIONS.TYPE.TASKCOMPLETED || + reportActionName === CONST.REPORT.ACTIONS.TYPE.TASKCANCELLED || + reportActionName === CONST.REPORT.ACTIONS.TYPE.TASKREOPENED + ); +} + /** * @param {*} reportID * @returns {[Object]} @@ -627,5 +641,6 @@ export { getReportAction, getNumberOfMoneyRequests, isSplitBillAction, + isTaskAction, getAllReportActions, }; diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.js b/src/pages/home/report/ContextMenu/ContextMenuActions.js index 98c9c01b28ff..374539a3ea74 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.js +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.js @@ -175,12 +175,6 @@ export default [ successIcon: Expensicons.Checkmark, shouldShow: (type, reportAction) => type === CONTEXT_MENU_TYPES.REPORT_ACTION && - reportAction.actionName !== CONST.REPORT.ACTIONS.TYPE.IOU && - reportAction.actionName !== CONST.REPORT.ACTIONS.TYPE.REPORTPREVIEW && - reportAction.actionName !== CONST.REPORT.ACTIONS.TYPE.TASKCANCELLED && - reportAction.actionName !== CONST.REPORT.ACTIONS.TYPE.TASKCOMPLETED && - reportAction.actionName !== CONST.REPORT.ACTIONS.TYPE.TASKREOPENED && - !ReportActionUtils.isCreatedTaskReportAction(reportAction) && !ReportUtils.isReportMessageAttachment(_.last(lodashGet(reportAction, ['message'], [{}]))) && !ReportActionUtils.isMessageDeleted(reportAction), @@ -188,9 +182,11 @@ export default [ // `ContextMenuItem` with `successText` and `successIcon` which will fallback to // the `text` and `icon` onPress: (closePopover, {reportAction, selection}) => { + const isTaskAction = ReportActionUtils.isTaskAction(reportAction); const isReportPreviewAction = ReportActionUtils.isReportPreviewAction(reportAction); const message = _.last(lodashGet(reportAction, 'message', [{}])); - const messageHtml = lodashGet(message, 'html', ''); + const originalMessage = _.get(reportAction, 'originalMessage', {}); + const messageHtml = isTaskAction ? lodashGet(originalMessage, 'html', '') : lodashGet(message, 'html', ''); const isAttachment = _.has(reportAction, 'isAttachment') ? reportAction.isAttachment : ReportUtils.isReportMessageAttachment(message); if (!isAttachment) { @@ -199,6 +195,9 @@ export default [ const iouReport = ReportUtils.getReport(ReportActionUtils.getIOUReportIDFromReportActionPreview(reportAction)); const displayMessage = ReportUtils.getReportPreviewMessage(iouReport, reportAction); Clipboard.setString(displayMessage); + } else if (ReportActionUtils.isModifiedExpenseAction(reportAction)) { + const modifyExpenseMessage = ReportUtils.getModifiedExpenseMessage(reportAction); + Clipboard.setString(modifyExpenseMessage); } else if (content) { const parser = new ExpensiMark(); if (!Clipboard.canSetHtml()) {