diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts
index 2c4beee07940..a01c4c3c7f0c 100644
--- a/src/libs/ReportActionsUtils.ts
+++ b/src/libs/ReportActionsUtils.ts
@@ -2062,6 +2062,7 @@ function isOldDotLegacyAction(action: OldDotReportAction | PartialReportAction):
CONST.REPORT.ACTIONS.TYPE.EXPORTED_TO_QUICK_BOOKS,
CONST.REPORT.ACTIONS.TYPE.REIMBURSEMENT_REQUESTED,
CONST.REPORT.ACTIONS.TYPE.REIMBURSEMENT_SETUP,
+ CONST.REPORT.ACTIONS.TYPE.REIMBURSED,
].some((oldDotActionName) => oldDotActionName === action?.actionName);
}
@@ -2092,6 +2093,7 @@ function isOldDotReportAction(action: ReportAction | OldDotReportAction) {
CONST.REPORT.ACTIONS.TYPE.EXPORTED_TO_QUICK_BOOKS,
CONST.REPORT.ACTIONS.TYPE.REIMBURSEMENT_REQUESTED,
CONST.REPORT.ACTIONS.TYPE.REIMBURSEMENT_SETUP,
+ CONST.REPORT.ACTIONS.TYPE.REIMBURSED,
].some((oldDotActionName) => oldDotActionName === action.actionName);
}
@@ -2360,11 +2362,6 @@ function getReportActionMessageFragments(translate: LocalizedTranslate, action:
return [{text: message, html: `${message}`, type: 'COMMENT'}];
}
- if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.REIMBURSED)) {
- const message = getReportActionMessageText(action);
- return [{text: message, html: `${message}`, type: 'COMMENT'}];
- }
-
if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.RETRACTED)) {
const message = translate('iou.retracted');
return [{text: message, html: `${message}`, type: 'COMMENT'}];
diff --git a/src/libs/ReportNameUtils.ts b/src/libs/ReportNameUtils.ts
index 4554b19656dc..58c7af67f25b 100644
--- a/src/libs/ReportNameUtils.ts
+++ b/src/libs/ReportNameUtils.ts
@@ -49,6 +49,7 @@ import {
getDismissedViolationMessageText,
getDynamicExternalWorkflowApproveFailedActionMessage,
getDynamicExternalWorkflowSubmitFailedActionMessage,
+ getExportIntegrationLastMessageText,
getForeignCurrencyDefaultTaxUpdateMessage,
getForwardsToUpdateMessage,
getIntegrationSyncFailedMessage,
@@ -105,6 +106,8 @@ import {
isMovedAction,
isOldDotReportAction,
isOriginalReportDeleted,
+ isReimbursementDeQueuedOrCanceledAction,
+ isReimbursementQueuedAction,
isRejectedAction,
isRenamedAction,
isReportActionAttachment,
@@ -122,6 +125,8 @@ import {
getParentReport,
getPolicyChangeMessage,
getPolicyName,
+ getReimbursementDeQueuedOrCanceledActionMessage,
+ getReimbursementQueuedActionMessage,
getReportMetadata,
getReportOrDraftReport,
getTransactionReportName,
@@ -411,10 +416,12 @@ function getMoneyRequestReportName({report, policy, invoiceReceiverPolicy}: {rep
function computeReportNameBasedOnReportAction(
translate: LocalizedTranslate,
+ formatPhoneNumber: LocaleContextProps['formatPhoneNumber'],
parentReportAction: ReportAction | undefined,
report: Report | undefined,
reportPolicy: Policy | undefined,
parentReport: Report | undefined,
+ personalDetailsList: OnyxEntry,
// TODO: Make this required when https://github.com/Expensify/App/issues/66411 is done
conciergeReportID?: string,
): string | undefined {
@@ -443,9 +450,35 @@ function computeReportNameBasedOnReportAction(
if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.HOLD) {
return translate('iou.heldExpense');
}
+ if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.EXPORTED_TO_INTEGRATION) {
+ return getExportIntegrationLastMessageText(translate, parentReportAction);
+ }
if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.UNHOLD) {
return translate('iou.unheldExpense');
}
+ if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.REJECTEDTRANSACTION_THREAD) {
+ return translate('iou.reject.reportActions.rejectedExpense');
+ }
+ if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.REJECTED_TRANSACTION_MARKASRESOLVED) {
+ return translate('iou.reject.reportActions.markedAsResolved');
+ }
+ if (isReimbursementQueuedAction(parentReportAction)) {
+ return getReimbursementQueuedActionMessage({
+ reportAction: parentReportAction,
+ report: parentReport,
+ translate,
+ formatPhoneNumber,
+ shouldUseShortDisplayName: false,
+ personalDetails: personalDetailsList,
+ });
+ }
+ if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.RECEIPT_SCAN_FAILED) {
+ return translate('iou.receiptScanningFailed');
+ }
+
+ if (isReimbursementDeQueuedOrCanceledAction(parentReportAction)) {
+ return getReimbursementDeQueuedOrCanceledActionMessage(translate, parentReportAction, parentReport);
+ }
if (isRejectedAction(parentReportAction)) {
return translate('iou.rejectedThisReport');
}
@@ -699,6 +732,21 @@ function computeReportNameBasedOnReportAction(
return Parser.htmlToText(getSettlementAccountLockedMessage(translate, parentReportAction));
}
+ if (isOldDotReportAction(parentReportAction)) {
+ return getMessageOfOldDotReportAction(translate, parentReportAction);
+ }
+
+ if (isRenamedAction(parentReportAction)) {
+ return getRenamedAction(translate, parentReportAction, isExpenseReport(parentReport));
+ }
+
+ if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.RESOLVED_DUPLICATES)) {
+ return translate('violations.resolvedDuplicates');
+ }
+
+ if (isCardIssuedAction(parentReportAction)) {
+ return getCardIssuedMessage({reportAction: parentReportAction, translate});
+ }
if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.ADD_CARD_FEED)) {
return getAddedCardFeedMessage(translate, parentReportAction);
}
@@ -759,23 +807,10 @@ function computeChatThreadReportName(
return formatReportLastMessageText(formattedName);
}
- if (!isEmptyObject(parentReportAction) && isOldDotReportAction(parentReportAction)) {
- return getMessageOfOldDotReportAction(translate, parentReportAction);
- }
-
- if (isRenamedAction(parentReportAction)) {
- const parent = reports?.[`${ONYXKEYS.COLLECTION.REPORT}${report?.parentReportID}`];
- return getRenamedAction(translate, parentReportAction, isExpenseReport(parent));
- }
-
if (parentReportActionMessage?.isDeletedParentAction) {
return translate('parentReportAction.deletedMessage');
}
- if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.RESOLVED_DUPLICATES) {
- return translate('violations.resolvedDuplicates');
- }
-
const isAttachment = isReportActionAttachment(!isEmptyObject(parentReportAction) ? parentReportAction : undefined);
const reportActionMessage = getReportActionText(parentReportAction).replaceAll(/(\n+|\r\n|\n|\r)/gm, ' ');
if (isAttachment && reportActionMessage) {
@@ -814,9 +849,6 @@ function computeChatThreadReportName(
if (isTripRoom(report) && report?.reportName !== CONST.REPORT.DEFAULT_REPORT_NAME) {
return report?.reportName ?? '';
}
- if (isCardIssuedAction(parentReportAction)) {
- return getCardIssuedMessage({reportAction: parentReportAction, translate});
- }
return reportActionMessage;
}
@@ -845,8 +877,17 @@ function computeReportName({
const parentReport = reports?.[`${ONYXKEYS.COLLECTION.REPORT}${report?.parentReportID}`];
const parentReportAction = isThread(report) ? reportActions?.[`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report?.parentReportID}`]?.[report.parentReportActionID] : undefined;
- // eslint-disable-next-line @typescript-eslint/no-deprecated
- const parentReportActionBasedName = computeReportNameBasedOnReportAction(translateLocal, parentReportAction, report, reportPolicy, parentReport, conciergeReportID);
+ const parentReportActionBasedName = computeReportNameBasedOnReportAction(
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
+ translateLocal,
+ formatPhoneNumberPhoneUtils,
+ parentReportAction,
+ report,
+ reportPolicy,
+ parentReport,
+ personalDetailsList,
+ conciergeReportID,
+ );
if (parentReportActionBasedName) {
return parentReportActionBasedName;
diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts
index e3df7b05fffd..143c2da363c5 100644
--- a/src/libs/ReportUtils.ts
+++ b/src/libs/ReportUtils.ts
@@ -182,28 +182,23 @@ import {
formatLastMessageText,
getActionableJoinRequestPendingReportAction,
getAllReportActions,
- getCardIssuedMessage,
getCreatedReportForUnapprovedTransactionsMessage,
- getExportIntegrationLastMessageText,
getIOUActionForTransactionID,
getIOUReportIDFromReportActionPreview,
getLastVisibleAction,
getLastVisibleAction as getLastVisibleActionReportActionsUtils,
getLastVisibleMessage as getLastVisibleMessageActionUtils,
getLastVisibleMessage as getLastVisibleMessageReportActionsUtils,
- getMessageOfOldDotReportAction,
getMostRecentActiveDEWApproveFailedAction,
getMostRecentActiveDEWSubmitFailedAction,
getNumberOfMoneyRequests,
getOneTransactionThreadReportAction,
getOneTransactionThreadReportID,
getOriginalMessage,
- getRenamedAction,
getReportAction,
getReportActionActorAccountID,
getReportActionHtml,
getReportActionMessage as getReportActionMessageReportUtils,
- getReportActionMessageText,
getReportActionText,
getSortedReportActions,
isActionableCardFraudAlert,
@@ -211,8 +206,6 @@ import {
isActionableTrackExpense,
isActionOfType,
isApprovedAction,
- isApprovedOrSubmittedReportAction,
- isCardIssuedAction,
isCreatedTaskReportAction,
isCurrentActionUnread,
isDeletedAction,
@@ -224,12 +217,9 @@ import {
isModifiedExpenseAction,
isMoneyRequestAction,
isMovedAction,
- isOldDotReportAction,
isPendingRemove,
isPolicyChangeLogAction,
- isReimbursementDeQueuedOrCanceledAction,
isReimbursementQueuedAction,
- isRenamedAction,
isReopenedAction,
isReportActionAttachment,
isReportActionVisible,
@@ -5784,75 +5774,6 @@ function parseReportActionHtmlToText(reportAction: OnyxEntry, repo
return textMessage;
}
-/**
- * Get the report action message for a report action.
- */
-function getReportActionMessage({
- reportAction,
- translate,
- formatPhoneNumber,
- reportID,
- childReportID,
- reports,
- personalDetails,
- conciergeReportID,
-}: {
- reportAction: OnyxEntry;
- translate: LocalizedTranslate;
- formatPhoneNumber: LocaleContextProps['formatPhoneNumber'];
- reportID?: string;
- childReportID?: string;
- reports?: Report[];
- personalDetails?: Partial;
- conciergeReportID: string | undefined;
-}) {
- if (isEmptyObject(reportAction)) {
- return '';
- }
- if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.HOLD) {
- return translate('iou.heldExpense');
- }
-
- if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.EXPORTED_TO_INTEGRATION) {
- return getExportIntegrationLastMessageText(translate, reportAction);
- }
-
- if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.UNHOLD) {
- return translate('iou.unheldExpense');
- }
-
- if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.REJECTEDTRANSACTION_THREAD) {
- return translate('iou.reject.reportActions.rejectedExpense');
- }
-
- if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.REJECTED_TRANSACTION_MARKASRESOLVED) {
- return translate('iou.reject.reportActions.markedAsResolved');
- }
-
- if (isApprovedOrSubmittedReportAction(reportAction) || isActionOfType(reportAction, CONST.REPORT.ACTIONS.TYPE.REIMBURSED)) {
- return getReportActionMessageText(reportAction);
- }
- if (isReimbursementQueuedAction(reportAction)) {
- return getReimbursementQueuedActionMessage({
- reportAction,
- report: getReportOrDraftReport(reportID, reports),
- translate,
- formatPhoneNumber,
- shouldUseShortDisplayName: false,
- personalDetails,
- });
- }
- if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.RECEIPT_SCAN_FAILED) {
- return translate('iou.receiptScanningFailed');
- }
-
- if (isReimbursementDeQueuedOrCanceledAction(reportAction)) {
- return getReimbursementDeQueuedOrCanceledActionMessage(translate, reportAction, getReportOrDraftReport(reportID, reports));
- }
-
- return parseReportActionHtmlToText(reportAction, reportID, conciergeReportID, childReportID);
-}
-
/**
* Get the title for a report.
* @deprecated Moved to src/libs/ReportNameUtils.ts.
@@ -5882,8 +5803,17 @@ function getReportName(reportNameInformation: GetReportNameParams): string {
const reportPolicy = policy ?? allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${report?.policyID}`];
- // eslint-disable-next-line @typescript-eslint/no-deprecated
- const parentReportActionBasedName = computeReportNameBasedOnReportAction(translateLocal, parentReportAction, report, reportPolicy, parentReport, conciergeReportID);
+ const parentReportActionBasedName = computeReportNameBasedOnReportAction(
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
+ translateLocal,
+ formatPhoneNumberPhoneUtils,
+ parentReportAction,
+ report,
+ reportPolicy,
+ parentReport,
+ personalDetails as PersonalDetailsList,
+ conciergeReportID,
+ );
if (parentReportActionBasedName) {
return parentReportActionBasedName;
@@ -5914,38 +5844,13 @@ function getReportName(reportNameInformation: GetReportNameParams): string {
return formatReportLastMessageText(formattedName);
}
- if (!isEmptyObject(parentReportAction) && isOldDotReportAction(parentReportAction)) {
- // eslint-disable-next-line @typescript-eslint/no-deprecated
- return getMessageOfOldDotReportAction(translateLocal, parentReportAction);
- }
-
- if (isRenamedAction(parentReportAction)) {
- // eslint-disable-next-line @typescript-eslint/no-deprecated
- return getRenamedAction(translateLocal, parentReportAction, isExpenseReport(getReport(report.parentReportID, allReports)));
- }
-
if (parentReportActionMessage?.isDeletedParentAction) {
// eslint-disable-next-line @typescript-eslint/no-deprecated
return translateLocal('parentReportAction.deletedMessage');
}
- if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.RESOLVED_DUPLICATES) {
- // eslint-disable-next-line @typescript-eslint/no-deprecated
- return translateLocal('violations.resolvedDuplicates');
- }
-
const isAttachment = isReportActionAttachment(!isEmptyObject(parentReportAction) ? parentReportAction : undefined);
- const reportActionMessage = getReportActionMessage({
- reportAction: parentReportAction,
- // eslint-disable-next-line @typescript-eslint/no-deprecated
- translate: translateLocal,
- formatPhoneNumber: formatPhoneNumberPhoneUtils,
- reportID: report?.parentReportID,
- childReportID: report?.reportID,
- reports,
- personalDetails,
- conciergeReportID,
- }).replaceAll(/(\n+|\r\n|\n|\r)/gm, ' ');
+ const reportActionMessage = parseReportActionHtmlToText(parentReportAction, report?.parentReportID, conciergeReportID, report?.reportID).replaceAll(/(\n+|\r\n|\n|\r)/gm, ' ');
if (isAttachment && reportActionMessage) {
// eslint-disable-next-line @typescript-eslint/no-deprecated
return `[${translateLocal('common.attachment')}]`;
@@ -5986,10 +5891,6 @@ function getReportName(reportNameInformation: GetReportNameParams): string {
if (isTripRoom(report) && report?.reportName !== CONST.REPORT.DEFAULT_REPORT_NAME) {
return report?.reportName ?? '';
}
- if (isCardIssuedAction(parentReportAction)) {
- // eslint-disable-next-line @typescript-eslint/no-deprecated
- return getCardIssuedMessage({reportAction: parentReportAction, translate: translateLocal});
- }
return reportActionMessage;
}
diff --git a/tests/utils/collections/reportActions.ts b/tests/utils/collections/reportActions.ts
index 4c10dc00056e..e39eafa38040 100644
--- a/tests/utils/collections/reportActions.ts
+++ b/tests/utils/collections/reportActions.ts
@@ -31,6 +31,7 @@ const deprecatedReportActions: ReportActionName[] = [
CONST.REPORT.ACTIONS.TYPE.REIMBURSEMENT_REQUESTED,
CONST.REPORT.ACTIONS.TYPE.REIMBURSEMENT_SETUP_REQUESTED,
CONST.REPORT.ACTIONS.TYPE.DONATION,
+ CONST.REPORT.ACTIONS.TYPE.REIMBURSED,
] as const;
export default function createRandomReportAction(index: number): ReportAction {