Skip to content

Commit 30404a1

Browse files
authored
Merge pull request Expensify#82537 from callstack-internal/part-3a-add-policyTags-param-to-getLastMessageTextForReport
[Part 3A] refactor: pass policytags to getLastMessageTextForReport
2 parents 0904d15 + 0cb3695 commit 30404a1

2 files changed

Lines changed: 29 additions & 14 deletions

File tree

src/libs/ModifiedExpenseMessage.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -679,16 +679,16 @@ function getForReportActionTemp({
679679

680680
const hasModifiedTag = isReportActionOriginalMessageAnObject && 'oldTag' in reportActionOriginalMessage && 'tag' in reportActionOriginalMessage;
681681
if (hasModifiedTag) {
682+
const policyTagsToUse = policyTags ?? CONST.POLICY.DEFAULT_TAG_LIST;
682683
const transactionTag = reportActionOriginalMessage?.tag ?? '';
683684
const oldTransactionTag = reportActionOriginalMessage?.oldTag ?? '';
684685
const splittedTag = getTagArrayFromName(transactionTag);
685686
const splittedOldTag = getTagArrayFromName(oldTransactionTag);
686687
const localizedTagListName = translate('common.tag');
687-
const sortedTagKeys = getSortedTagKeys(policyTags);
688+
const sortedTagKeys = getSortedTagKeys(policyTagsToUse);
688689

689690
for (const [index, policyTagKey] of sortedTagKeys.entries()) {
690-
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
691-
const policyTagListName = policyTags?.[policyTagKey]?.name || localizedTagListName;
691+
const policyTagListName = policyTagsToUse[policyTagKey].name || localizedTagListName;
692692

693693
const newTag = splittedTag.at(index) ?? '';
694694
const oldTag = splittedOldTag.at(index) ?? '';
@@ -756,10 +756,11 @@ function getForReportActionTemp({
756756

757757
const hasPolicyRulesModifiedFields = isReportActionOriginalMessageAnObject && 'policyRulesModifiedFields' in reportActionOriginalMessage && 'policyID' in reportActionOriginalMessage;
758758
if (hasPolicyRulesModifiedFields) {
759-
const {policyRulesModifiedFields, policyID} = reportActionOriginalMessage;
759+
const rulePolicyID = reportActionOriginalMessage.policyID;
760+
const policyRulesModifiedFields = reportActionOriginalMessage.policyRulesModifiedFields;
760761

761-
if (policyRulesModifiedFields && policyID) {
762-
return getPolicyRulesModifiedMessage(translate, policyRulesModifiedFields, policyID);
762+
if (policyRulesModifiedFields && rulePolicyID) {
763+
return getPolicyRulesModifiedMessage(translate, policyRulesModifiedFields, rulePolicyID);
763764
}
764765
}
765766

src/libs/OptionsListUtils/index.ts

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import {translateLocal} from '@libs/Localize';
1717
import {appendCountryCode, getPhoneNumberWithoutSpecialChars} from '@libs/LoginUtils';
1818
import {MaxHeap} from '@libs/MaxHeap';
1919
import {MinHeap} from '@libs/MinHeap';
20-
import {getForReportAction} from '@libs/ModifiedExpenseMessage';
20+
import {getForReportAction, getForReportActionTemp} from '@libs/ModifiedExpenseMessage';
2121
import Navigation from '@libs/Navigation/Navigation';
2222
import Parser from '@libs/Parser';
2323
import Performance from '@libs/Performance';
@@ -603,6 +603,8 @@ function getLastMessageTextForReport({
603603
policyForMovingExpensesID,
604604
reportMetadata,
605605
reportAttributesDerived,
606+
policyTags,
607+
currentUserLogin,
606608
}: {
607609
translate: LocalizedTranslate;
608610
report: OnyxEntry<Report>;
@@ -614,6 +616,8 @@ function getLastMessageTextForReport({
614616
policyForMovingExpensesID?: string;
615617
reportMetadata?: OnyxEntry<ReportMetadata>;
616618
reportAttributesDerived?: ReportAttributesDerivedValue['reports'];
619+
policyTags?: OnyxEntry<PolicyTagLists>;
620+
currentUserLogin?: string;
617621
}): string {
618622
const reportID = report?.reportID;
619623
const lastReportAction = reportID ? lastVisibleReportActions[reportID] : undefined;
@@ -687,13 +691,23 @@ function getLastMessageTextForReport({
687691
} else if (isReportMessageAttachment({text: report?.lastMessageText ?? '', html: report?.lastMessageHtml, type: ''})) {
688692
lastMessageTextFromReport = `[${translate('common.attachment')}]`;
689693
} else if (isModifiedExpenseAction(lastReportAction)) {
690-
const properSchemaForModifiedExpenseMessage = getForReportAction({
691-
reportAction: lastReportAction,
692-
policyID: report?.policyID,
693-
movedFromReport,
694-
movedToReport,
695-
policyForMovingExpensesID,
696-
});
694+
const properSchemaForModifiedExpenseMessage = policyTags
695+
? getForReportActionTemp({
696+
translate,
697+
reportAction: lastReportAction,
698+
policy,
699+
movedFromReport,
700+
movedToReport,
701+
policyTags,
702+
currentUserLogin: currentUserLogin ?? '',
703+
})
704+
: getForReportAction({
705+
reportAction: lastReportAction,
706+
policyID: report?.policyID,
707+
movedFromReport,
708+
movedToReport,
709+
policyForMovingExpensesID,
710+
});
697711
lastMessageTextFromReport = formatReportLastMessageText(properSchemaForModifiedExpenseMessage, true);
698712
} else if (isMovedTransactionAction(lastReportAction)) {
699713
lastMessageTextFromReport = Parser.htmlToText(getMovedTransactionMessage(translate, lastReportAction));

0 commit comments

Comments
 (0)