diff --git a/src/components/AvatarWithDisplayName.tsx b/src/components/AvatarWithDisplayName.tsx index 566747203610..cea6454b9f59 100644 --- a/src/components/AvatarWithDisplayName.tsx +++ b/src/components/AvatarWithDisplayName.tsx @@ -210,7 +210,7 @@ function AvatarWithDisplayName({ const title = getReportName(report, reportAttributes); const isParentReportArchived = useReportIsArchived(report?.parentReportID); const subtitle = getChatRoomSubtitle(report, policy, conciergeReportID, translate, true, isReportArchived); - const parentNavigationSubtitleData = getParentNavigationSubtitle(report, policy, conciergeReportID, isParentReportArchived, reportAttributes); + const parentNavigationSubtitleData = getParentNavigationSubtitle(report, policy, conciergeReportID, translate, isParentReportArchived, reportAttributes); const isMoneyRequestOrReport = isMoneyRequestReport(report) || isMoneyRequest(report) || isTrackExpenseReport(report) || isInvoiceReport(report); const ownerPersonalDetails = getPersonalDetailsForAccountIDs(report?.ownerAccountID ? [report.ownerAccountID] : [], personalDetails); const displayNamesWithTooltips = getDisplayNamesWithTooltips(Object.values(ownerPersonalDetails), false, localeCompare, formatPhoneNumber); diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 57857e4df2bc..2c440fcec374 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -6054,6 +6054,7 @@ function getParentNavigationSubtitle( report: OnyxEntry, policy: OnyxEntry, conciergeReportID: string | undefined, + translate: LocalizedTranslate, isParentReportArchived = false, reportAttributes?: ReportAttributesDerivedValue['reports'], ): ParentNavigationSummaryParams { @@ -6068,8 +6069,8 @@ function getParentNavigationSubtitle( if (isExpenseReport(report)) { return { - reportName: translateLocal('workspace.common.policyExpenseChatName', reportOwnerDisplayName ?? ''), - workspaceName: getPolicyName({report, policy}), + reportName: translate('workspace.common.policyExpenseChatName', reportOwnerDisplayName ?? ''), + workspaceName: getPolicyName({report, policy, unavailableTranslation: translate('workspace.common.unavailable')}), }; } if (isIOUReport(report)) { @@ -6079,7 +6080,7 @@ function getParentNavigationSubtitle( } if (isInvoiceReport(report) || isInvoiceRoom(parentReport)) { - const senderWorkspaceName = getPolicyName({report: parentReport, policy}); + const senderWorkspaceName = getPolicyName({report: parentReport, policy, unavailableTranslation: translate('workspace.common.unavailable')}); const invoiceReceiverPolicyID = getInvoiceReceiverPolicyID(parentReport); const invoiceReceiverPolicy = invoiceReceiverPolicyID ? allPolicies?.[`${ONYXKEYS.COLLECTION.POLICY}${invoiceReceiverPolicyID}`] : undefined; const isCurrentUserReceiver = isCurrentUserInvoiceReceiver(parentReport); @@ -6091,7 +6092,7 @@ function getParentNavigationSubtitle( } if (isArchivedNonExpenseReport(parentReport, isParentReportArchived)) { - reportName += ` (${translateLocal('common.archived')})`; + reportName += ` (${translate('common.archived')})`; } return { diff --git a/src/pages/DynamicReportDetailsPage.tsx b/src/pages/DynamicReportDetailsPage.tsx index 9dd15b162f46..838ed6f5a24a 100644 --- a/src/pages/DynamicReportDetailsPage.tsx +++ b/src/pages/DynamicReportDetailsPage.tsx @@ -255,7 +255,7 @@ function DynamicReportDetailsPage({policy, report, route, reportMetadata, report const isReportArchived = useReportIsArchived(report?.reportID); const isArchivedRoom = useMemo(() => isArchivedNonExpenseReport(report, isReportArchived), [report, isReportArchived]); const shouldDisableRename = useMemo(() => shouldDisableRenameUtil(report, isReportArchived), [report, isReportArchived]); - const parentNavigationSubtitleData = getParentNavigationSubtitle(report, policy, conciergeReportID, isParentReportArchived); + const parentNavigationSubtitleData = getParentNavigationSubtitle(report, policy, conciergeReportID, translate, isParentReportArchived); const base62ReportID = getBase62ReportID(Number(report.reportID)); const ancestors = useAncestors(report); diff --git a/src/pages/ShareCodePage.tsx b/src/pages/ShareCodePage.tsx index adcd39ada06a..69e466753766 100644 --- a/src/pages/ShareCodePage.tsx +++ b/src/pages/ShareCodePage.tsx @@ -105,7 +105,7 @@ function ShareCodePage({report, policy, backTo}: ShareCodePageProps) { } return ( - getParentNavigationSubtitle(report, policy, conciergeReportID, isParentReportArchived).workspaceName ?? + getParentNavigationSubtitle(report, policy, conciergeReportID, translate, isParentReportArchived).workspaceName ?? getChatRoomSubtitle(report, policy, conciergeReportID, translate, false, isReportArchived) ); } diff --git a/src/pages/inbox/HeaderView.tsx b/src/pages/inbox/HeaderView.tsx index dcd0ce022d67..46eb6ef562e4 100644 --- a/src/pages/inbox/HeaderView.tsx +++ b/src/pages/inbox/HeaderView.tsx @@ -171,7 +171,7 @@ function HeaderView({onNavigationMenuButtonClicked, reportID}: HeaderViewProps) ? getReportStatusTooltipTranslation({stateNum: reportHeaderData?.stateNum, statusNum: reportHeaderData?.statusNum, translate}) : undefined; const isParentReportHeaderDataArchived = useReportIsArchived(reportHeaderData?.parentReportID); - const parentNavigationSubtitleData = getParentNavigationSubtitle(parentNavigationReport, policy, conciergeReportID, isParentReportHeaderDataArchived); + const parentNavigationSubtitleData = getParentNavigationSubtitle(parentNavigationReport, policy, conciergeReportID, translate, isParentReportHeaderDataArchived); const humanAgentAccountID = getHumanAgentAccountIDFromReportAction(parentReportAction); const humanAgentName = getHumanAgentFirstName(parentReportAction, personalDetails); const reportDescription = StringUtils.lineBreaksToSpaces(Parser.htmlToText(getReportDescription(report))); diff --git a/tests/unit/ReportUtilsTest.ts b/tests/unit/ReportUtilsTest.ts index 7437f469c467..7402d515eb1f 100644 --- a/tests/unit/ReportUtilsTest.ts +++ b/tests/unit/ReportUtilsTest.ts @@ -3192,13 +3192,13 @@ describe('ReportUtils', () => { }); it('should return the correct parent navigation subtitle for the archived invoice report', () => { - const actual = getParentNavigationSubtitle(baseArchivedPolicyExpenseChat, undefined, undefined, true); + const actual = getParentNavigationSubtitle(baseArchivedPolicyExpenseChat, undefined, undefined, translateLocal, true); const normalizedActual = {...actual, reportName: actual.reportName?.replaceAll('\u00A0', ' ')}; expect(normalizedActual).toEqual({reportName: 'A workspace & Ragnar Lothbrok (archived)'}); }); it('should return the correct parent navigation subtitle for the non archived invoice report', () => { - const actual = getParentNavigationSubtitle(baseArchivedPolicyExpenseChat, undefined, undefined, false); + const actual = getParentNavigationSubtitle(baseArchivedPolicyExpenseChat, undefined, undefined, translateLocal, false); const normalizedActual = {...actual, reportName: actual.reportName?.replaceAll('\u00A0', ' ')}; expect(normalizedActual).toEqual({reportName: 'A workspace & Ragnar Lothbrok'}); }); @@ -3217,7 +3217,7 @@ describe('ReportUtils', () => { role: CONST.POLICY.ROLE.ADMIN, }); - const actual = getParentNavigationSubtitle(expenseReport, testPolicy, undefined); + const actual = getParentNavigationSubtitle(expenseReport, testPolicy, undefined, translateLocal); expect(actual.workspaceName).toBe('Direct Policy Name'); }); @@ -3245,14 +3245,14 @@ describe('ReportUtils', () => { }; return Onyx.set(`${ONYXKEYS.COLLECTION.REPORT}200`, parentInvoiceRoom).then(() => { - const actual = getParentNavigationSubtitle(invoiceReport, testPolicy, undefined); + const actual = getParentNavigationSubtitle(invoiceReport, testPolicy, undefined, translateLocal); const normalizedActual = {...actual, reportName: actual.reportName?.replaceAll('\u00A0', ' ')}; expect(normalizedActual.reportName).toContain('Invoice Policy'); }); }); it('should fall back to allPolicies when policy parameter is undefined', () => { - const actual = getParentNavigationSubtitle(baseArchivedPolicyExpenseChat, undefined, undefined); + const actual = getParentNavigationSubtitle(baseArchivedPolicyExpenseChat, undefined, undefined, translateLocal); const normalizedActual = {...actual, reportName: actual.reportName?.replaceAll('\u00A0', ' ')}; // Should still resolve via Onyx-connected allPolicies or report.policyName expect(normalizedActual.reportName).toContain('A workspace'); @@ -3265,7 +3265,7 @@ describe('ReportUtils', () => { reportName: 'Chat Report', type: CONST.REPORT.TYPE.CHAT, }; - const actual = getParentNavigationSubtitle(chatReport, undefined, undefined); + const actual = getParentNavigationSubtitle(chatReport, undefined, undefined, translateLocal); expect(actual).toEqual({}); }); @@ -3292,13 +3292,13 @@ describe('ReportUtils', () => { }) .then(waitForBatchedUpdates) .then(() => { - const actual = getParentNavigationSubtitle(childReport, undefined, conciergeReportID); + const actual = getParentNavigationSubtitle(childReport, undefined, conciergeReportID, translateLocal); expect(actual.reportName).toBe('Concierge'); }); }); it('should return reportName and workspaceName when parent report exists and conciergeReportID is undefined', () => { - const actual = getParentNavigationSubtitle(baseArchivedPolicyExpenseChat, undefined, undefined, false); + const actual = getParentNavigationSubtitle(baseArchivedPolicyExpenseChat, undefined, undefined, translateLocal); expect(actual).toHaveProperty('reportName'); }); });