diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index c5d066dd45481..93096ec9dee2e 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -2444,6 +2444,11 @@ function getReportActionFromExpensifyCard(cardID: number) { }); } +function getIntegrationSyncFailedMessage(action: OnyxEntry): string { + const {label, errorMessage} = getOriginalMessage(action as ReportAction) ?? {label: '', errorMessage: ''}; + return translateLocal('report.actions.type.integrationSyncFailed', {label, errorMessage}); +} + export { doesReportHaveVisibleActions, extractLinksFromMessageHtml, @@ -2593,6 +2598,7 @@ export { getLeaveRoomMessage, getRetractedMessage, getReportActionFromExpensifyCard, + getIntegrationSyncFailedMessage, }; export type {LastVisibleMessage}; diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 9adbc4cbb2371..972044469c7b2 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -139,6 +139,7 @@ import { getCardIssuedMessage, getDismissedViolationMessageText, getExportIntegrationLastMessageText, + getIntegrationSyncFailedMessage, getIOUReportIDFromReportActionPreview, getJoinRequestMessage, getLastClosedReportAction, @@ -4849,6 +4850,10 @@ function getReportNameInternal({ return Parser.htmlToText(report?.reportName ?? '').trim(); } + if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.INTEGRATION_SYNC_FAILED)) { + return getIntegrationSyncFailedMessage(parentReportAction); + } + if (isChatThread(report)) { if (!isEmptyObject(parentReportAction) && isTransactionThread(parentReportAction)) { formattedName = getTransactionReportName({reportAction: parentReportAction, transactions, reports}); diff --git a/src/libs/SidebarUtils.ts b/src/libs/SidebarUtils.ts index 93e21c94de8d1..fb64bdae00e3e 100644 --- a/src/libs/SidebarUtils.ts +++ b/src/libs/SidebarUtils.ts @@ -26,6 +26,7 @@ import Performance from './Performance'; import {getCleanedTagName, getPolicy} from './PolicyUtils'; import { getCardIssuedMessage, + getIntegrationSyncFailedMessage, getLastVisibleMessage, getMessageOfOldDotReportAction, getOneTransactionThreadReportID, @@ -611,6 +612,8 @@ function getOptionData({ result.alternateText = translateLocal('workspaceActions.upgradedWorkspace'); } else if (isActionOfType(lastAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.TEAM_DOWNGRADE)) { result.alternateText = translateLocal('workspaceActions.downgradedWorkspace'); + } else if (isActionOfType(lastAction, CONST.REPORT.ACTIONS.TYPE.INTEGRATION_SYNC_FAILED)) { + result.alternateText = getIntegrationSyncFailedMessage(lastAction); } else if ( isActionOfType(lastAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.ADD_CATEGORY) || isActionOfType(lastAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.DELETE_CATEGORY) || diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx index 6b70f07132b90..33512855f7303 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx @@ -25,6 +25,7 @@ import { getActionableMentionWhisperMessage, getCardIssuedMessage, getExportIntegrationMessageHTML, + getIntegrationSyncFailedMessage, getIOUReportIDFromReportActionPreview, getJoinRequestMessage, getMemberChangeMessageFragment, @@ -625,8 +626,7 @@ const ContextMenuActions: ContextMenuAction[] = [ } else if (reportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.REOPENED) { setClipboardMessage(getReopenedMessage()); } else if (isActionOfType(reportAction, CONST.REPORT.ACTIONS.TYPE.INTEGRATION_SYNC_FAILED)) { - const {label, errorMessage} = getOriginalMessage(reportAction) ?? {label: '', errorMessage: ''}; - setClipboardMessage(translateLocal('report.actions.type.integrationSyncFailed', {label, errorMessage})); + setClipboardMessage(getIntegrationSyncFailedMessage(reportAction)); } else if (isCardIssuedAction(reportAction)) { setClipboardMessage(getCardIssuedMessage({reportAction, shouldRenderHTML: true, policyID: report?.policyID, card})); } else if (isActionOfType(reportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.DELETE_INTEGRATION)) { diff --git a/src/pages/home/report/PureReportActionItem.tsx b/src/pages/home/report/PureReportActionItem.tsx index 8e6b0b80b06e5..a32718782e8f9 100644 --- a/src/pages/home/report/PureReportActionItem.tsx +++ b/src/pages/home/report/PureReportActionItem.tsx @@ -60,6 +60,7 @@ import { extractLinksFromMessageHtml, getDemotedFromWorkspaceMessage, getDismissedViolationMessageText, + getIntegrationSyncFailedMessage, getIOUReportIDFromReportActionPreview, getJoinRequestMessage, getOriginalMessage, @@ -1130,8 +1131,7 @@ function PureReportActionItem({ const message = getRenamedAction(action, isExpenseReport(report)); children = ; } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.INTEGRATION_SYNC_FAILED)) { - const {label, errorMessage} = getOriginalMessage(action) ?? {label: '', errorMessage: ''}; - children = ; + children = ; } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.DELETE_INTEGRATION)) { children = ; } else {