From a8dd5679ba4804b8b4773acd8c2917826ae0c606 Mon Sep 17 00:00:00 2001 From: Prince Mendiratta Date: Mon, 6 Nov 2023 21:33:15 +0530 Subject: [PATCH 1/2] feat: fix system message for custom tags Signed-off-by: Prince Mendiratta --- src/libs/ReportUtils.js | 9 ++++++++- src/libs/actions/IOU.js | 5 +++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/libs/ReportUtils.js b/src/libs/ReportUtils.js index 1e3fc5297193..7465badcfc7d 100644 --- a/src/libs/ReportUtils.js +++ b/src/libs/ReportUtils.js @@ -11,6 +11,7 @@ import * as defaultWorkspaceAvatars from '@components/Icon/WorkspaceDefaultAvata import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; +import * as IOU from './actions/IOU'; import * as CurrencyUtils from './CurrencyUtils'; import DateUtils from './DateUtils'; import isReportMessageAttachment from './isReportMessageAttachment'; @@ -19,6 +20,7 @@ import linkingConfig from './Navigation/linkingConfig'; import Navigation from './Navigation/Navigation'; import * as NumberUtils from './NumberUtils'; import Permissions from './Permissions'; +import * as PolicyUtils from './PolicyUtils'; import * as ReportActionsUtils from './ReportActionsUtils'; import * as TransactionUtils from './TransactionUtils'; import * as Url from './Url'; @@ -1906,6 +1908,11 @@ function getModifiedExpenseMessage(reportAction) { if (_.isEmpty(reportActionOriginalMessage)) { return Localize.translateLocal('iou.changedTheRequest'); } + const reportID = lodashGet(reportAction, 'reportID', ''); + const policyID = lodashGet(getReport(reportID), 'policyID', ''); + const policyTags = IOU.getPolicyTags(policyID); + const policyTag = PolicyUtils.getTag(policyTags); + const policyTagListName = lodashGet(policyTag, 'name', Localize.translateLocal('common.tag')); const hasModifiedAmount = _.has(reportActionOriginalMessage, 'oldAmount') && @@ -1954,7 +1961,7 @@ function getModifiedExpenseMessage(reportAction) { const hasModifiedTag = _.has(reportActionOriginalMessage, 'oldTag') && _.has(reportActionOriginalMessage, 'tag'); if (hasModifiedTag) { - return getProperSchemaForModifiedExpenseMessage(reportActionOriginalMessage.tag, reportActionOriginalMessage.oldTag, Localize.translateLocal('common.tag'), true); + return getProperSchemaForModifiedExpenseMessage(reportActionOriginalMessage.tag, reportActionOriginalMessage.oldTag, policyTagListName, true); } const hasModifiedBillable = _.has(reportActionOriginalMessage, 'oldBillable') && _.has(reportActionOriginalMessage, 'billable'); diff --git a/src/libs/actions/IOU.js b/src/libs/actions/IOU.js index 19ac03228753..691bbf68a88c 100644 --- a/src/libs/actions/IOU.js +++ b/src/libs/actions/IOU.js @@ -2949,6 +2949,10 @@ function getIOUReportID(iou, route) { return lodashGet(route, 'params.reportID') || lodashGet(iou, 'participants.0.reportID', ''); } +function getPolicyTags(policyID) { + return lodashGet(allPolicyTags, `${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`, {}); +} + export { createDistanceRequest, editMoneyRequest, @@ -2985,4 +2989,5 @@ export { replaceReceipt, detachReceipt, getIOUReportID, + getPolicyTags, }; From e86594f3139b543c762c37ec5de8074959b03767 Mon Sep 17 00:00:00 2001 From: Prince Mendiratta Date: Mon, 6 Nov 2023 21:48:17 +0530 Subject: [PATCH 2/2] feat: do not convert to lowercase if custom tag Signed-off-by: Prince Mendiratta --- src/libs/ReportUtils.js | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/libs/ReportUtils.js b/src/libs/ReportUtils.js index 7465badcfc7d..2f7e0308c3f8 100644 --- a/src/libs/ReportUtils.js +++ b/src/libs/ReportUtils.js @@ -1855,13 +1855,14 @@ function getReportPreviewMessage(report, reportAction = {}, shouldConsiderReceip * @param {String} oldValue * @param {String} valueName * @param {Boolean} valueInQuotes + * @param {Boolean} shouldConvertToLowercase * @returns {String} */ -function getProperSchemaForModifiedExpenseMessage(newValue, oldValue, valueName, valueInQuotes) { +function getProperSchemaForModifiedExpenseMessage(newValue, oldValue, valueName, valueInQuotes, shouldConvertToLowercase = true) { const newValueToDisplay = valueInQuotes ? `"${newValue}"` : newValue; const oldValueToDisplay = valueInQuotes ? `"${oldValue}"` : oldValue; - const displayValueName = valueName.toLowerCase(); + const displayValueName = shouldConvertToLowercase ? valueName.toLowerCase() : valueName; if (!oldValue) { return Localize.translateLocal('iou.setTheRequest', {valueName: displayValueName, newValueToDisplay}); @@ -1961,7 +1962,13 @@ function getModifiedExpenseMessage(reportAction) { const hasModifiedTag = _.has(reportActionOriginalMessage, 'oldTag') && _.has(reportActionOriginalMessage, 'tag'); if (hasModifiedTag) { - return getProperSchemaForModifiedExpenseMessage(reportActionOriginalMessage.tag, reportActionOriginalMessage.oldTag, policyTagListName, true); + return getProperSchemaForModifiedExpenseMessage( + reportActionOriginalMessage.tag, + reportActionOriginalMessage.oldTag, + policyTagListName, + true, + policyTagListName === Localize.translateLocal('common.tag'), + ); } const hasModifiedBillable = _.has(reportActionOriginalMessage, 'oldBillable') && _.has(reportActionOriginalMessage, 'billable');