From fed6e6eefaa7dbe569db858d5e7de75da1ff9144 Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Mon, 29 Dec 2025 22:29:54 +0100 Subject: [PATCH 1/9] handle ACH account update policy change logs report actions --- src/languages/en.ts | 16 ++++++++++ src/libs/ReportActionsUtils.ts | 30 +++++++++++++++++++ src/libs/SidebarUtils.ts | 3 ++ .../report/ContextMenu/ContextMenuActions.tsx | 3 ++ .../home/report/PureReportActionItem.tsx | 3 ++ 5 files changed, 55 insertions(+) diff --git a/src/languages/en.ts b/src/languages/en.ts index 48bd86e513e2..1a711801d2fa 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -6199,6 +6199,22 @@ const translations = { billcom: 'BILLCOM', }, workspaceActions: { + setDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `set the default business bank account to "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, + removedDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `removed the default business bank account "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, + changedDefaultBankAccount: ({ + bankAccountName, + maskedBankAccountNumber, + oldBankAccountName, + oldMaskedBankAccountNumber, + }: { + bankAccountName: string; + maskedBankAccountNumber: string; + oldBankAccountName: string; + oldMaskedBankAccountNumber: string; + }) => + `changed the default business bank account to "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}" (previously "${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber}")`, addApprovalRule: (approverEmail: string, approverName: string, field: string, name: string) => `added ${approverName} (${approverEmail}) as an approver for the ${field} "${name}"`, deleteApprovalRule: (approverEmail: string, approverName: string, field: string, name: string) => `removed ${approverName} (${approverEmail}) as an approver for the ${field} "${name}"`, diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index 60164e4052cc..9029a9c42444 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -3087,6 +3087,35 @@ function getWorkspaceReimbursementUpdateMessage(action: ReportAction): string { return getReportActionText(action); } +type UpdateACHAccountOriginalMessage = { + bankAccountName?: string; + maskedBankAccountNumber?: string; + oldBankAccountName?: string; + oldMaskedBankAccountNumber?: string; +}; + +function getUpdateACHAccountMessage(action: ReportAction): string { + const {bankAccountName, maskedBankAccountNumber, oldBankAccountName, oldMaskedBankAccountNumber} = + (getOriginalMessage(action as ReportAction) as UpdateACHAccountOriginalMessage | undefined) ?? {}; + + if (!!maskedBankAccountNumber && !oldMaskedBankAccountNumber) { + // eslint-disable-next-line @typescript-eslint/no-deprecated + return translateLocal('workspaceActions.setDefaultBankAccount', {bankAccountName: bankAccountName ?? '', maskedBankAccountNumber}); + } + if (!maskedBankAccountNumber && oldMaskedBankAccountNumber) { + // eslint-disable-next-line @typescript-eslint/no-deprecated + return translateLocal('workspaceActions.removedDefaultBankAccount', {bankAccountName: oldBankAccountName ?? '', maskedBankAccountNumber: oldMaskedBankAccountNumber}); + } + + // Case 3: Changing from one bank account to another + if (!!maskedBankAccountNumber && !!oldMaskedBankAccountNumber) { + // eslint-disable-next-line @typescript-eslint/no-deprecated + return translateLocal('workspaceActions.changedDefaultBankAccount', {bankAccountName: bankAccountName ?? '', maskedBankAccountNumber, oldBankAccountName: oldBankAccountName ?? '', oldMaskedBankAccountNumber}); + } + + return getReportActionText(action); +} + function getPolicyChangeLogMaxExpenseAmountNoReceiptMessage(action: ReportAction): string { const {oldMaxExpenseAmountNoReceipt, newMaxExpenseAmountNoReceipt, currency} = getOriginalMessage(action as ReportAction) ?? {}; @@ -3718,6 +3747,7 @@ export { getSubmitsToUpdateMessage, getForwardsToUpdateMessage, getWorkspaceReimbursementUpdateMessage, + getUpdateACHAccountMessage, getWorkspaceCurrencyUpdateMessage, getWorkspaceTaxUpdateMessage, getWorkspaceFrequencyUpdateMessage, diff --git a/src/libs/SidebarUtils.ts b/src/libs/SidebarUtils.ts index 48e2434cc912..7f0aa1992885 100644 --- a/src/libs/SidebarUtils.ts +++ b/src/libs/SidebarUtils.ts @@ -74,6 +74,7 @@ import { getWorkspaceFeatureEnabledMessage, getWorkspaceFrequencyUpdateMessage, getWorkspaceReimbursementUpdateMessage, + getUpdateACHAccountMessage, getWorkspaceReportFieldAddMessage, getWorkspaceReportFieldDeleteMessage, getWorkspaceReportFieldUpdateMessage, @@ -903,6 +904,8 @@ function getOptionData({ result.alternateText = getForwardsToUpdateMessage(lastAction); } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_REIMBURSEMENT_ENABLED) { result.alternateText = getWorkspaceReimbursementUpdateMessage(lastAction); + } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT) { + result.alternateText = getUpdateACHAccountMessage(lastAction); } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT) { result.alternateText = getPolicyChangeLogMaxExpenseAmountNoReceiptMessage(lastAction); } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT) { diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx index 383c6784a246..f88eb4bc64e2 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx @@ -73,6 +73,7 @@ import { getWorkspaceFeatureEnabledMessage, getWorkspaceFrequencyUpdateMessage, getWorkspaceReimbursementUpdateMessage, + getUpdateACHAccountMessage, getWorkspaceReportFieldAddMessage, getWorkspaceReportFieldDeleteMessage, getWorkspaceReportFieldUpdateMessage, @@ -741,6 +742,8 @@ const ContextMenuActions: ContextMenuAction[] = [ Clipboard.setString(getForwardsToUpdateMessage(reportAction)); } else if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_REIMBURSEMENT_ENABLED) { Clipboard.setString(getWorkspaceReimbursementUpdateMessage(reportAction)); + } else if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT) { + Clipboard.setString(getUpdateACHAccountMessage(reportAction)); } else if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT) { Clipboard.setString(getPolicyChangeLogMaxExpenseAmountNoReceiptMessage(reportAction)); } else if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT) { diff --git a/src/pages/home/report/PureReportActionItem.tsx b/src/pages/home/report/PureReportActionItem.tsx index 058f4b0b9604..00a43d8b27ca 100644 --- a/src/pages/home/report/PureReportActionItem.tsx +++ b/src/pages/home/report/PureReportActionItem.tsx @@ -108,6 +108,7 @@ import { getWorkspaceFeatureEnabledMessage, getWorkspaceFrequencyUpdateMessage, getWorkspaceReimbursementUpdateMessage, + getUpdateACHAccountMessage, getWorkspaceReportFieldAddMessage, getWorkspaceReportFieldDeleteMessage, getWorkspaceReportFieldUpdateMessage, @@ -1402,6 +1403,8 @@ function PureReportActionItem({ children = ; } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_REIMBURSEMENT_ENABLED)) { children = ; + } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT)) { + children = ; } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT)) { children = ; } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT)) { From 38e96262a2a01397db25132cd2884470a6910287 Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Tue, 30 Dec 2025 23:25:04 +0100 Subject: [PATCH 2/9] add spanish translation --- src/languages/es.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/languages/es.ts b/src/languages/es.ts index 7c1b88d59db1..cbaffd1bdb69 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -5909,6 +5909,22 @@ ${amount} para ${merchant} - ${date}`, billcom: 'BILLCOM', }, workspaceActions: { + setDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `estableció la cuenta bancaria empresarial predeterminada en "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, + removedDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `eliminó la cuenta bancaria empresarial predeterminada "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, + changedDefaultBankAccount: ({ + bankAccountName, + maskedBankAccountNumber, + oldBankAccountName, + oldMaskedBankAccountNumber, + }: { + bankAccountName: string; + maskedBankAccountNumber: string; + oldBankAccountName: string; + oldMaskedBankAccountNumber: string; + }) => + `cambió la cuenta bancaria empresarial predeterminada a "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}" (previamente "${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber}")`, addApprovalRule: (approverEmail, approverName, field, name) => `añadió a ${approverName} (${approverEmail}) como aprobador para la ${field} "${name}"`, deleteApprovalRule: (approverEmail, approverName, field, name) => `eliminó a ${approverName} (${approverEmail}) como aprobador para la ${field} "${name}"`, updateApprovalRule: ({field, name, newApproverEmail, newApproverName, oldApproverEmail, oldApproverName}) => { From ed8e786a78aefcba815bacc02aef4c7ebb7c54ee Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Tue, 30 Dec 2025 23:25:10 +0100 Subject: [PATCH 3/9] add translations --- src/languages/de.ts | 16 ++++++++++++++++ src/languages/fr.ts | 16 ++++++++++++++++ src/languages/it.ts | 16 ++++++++++++++++ src/languages/ja.ts | 16 ++++++++++++++++ src/languages/nl.ts | 16 ++++++++++++++++ src/languages/pl.ts | 16 ++++++++++++++++ src/languages/pt-BR.ts | 16 ++++++++++++++++ src/languages/zh-hans.ts | 16 ++++++++++++++++ 8 files changed, 128 insertions(+) diff --git a/src/languages/de.ts b/src/languages/de.ts index 0dbc0abb96a7..a3097a8dd317 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -6616,6 +6616,22 @@ Fordere Spesendetails wie Belege und Beschreibungen an, lege Limits und Standard } } }, + setDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `das Standardgeschäftsbankkonto auf „${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}“ festlegen`, + removedDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `das Standard-Geschäftsbankkonto „${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}“ entfernt`, + changedDefaultBankAccount: ({ + bankAccountName, + maskedBankAccountNumber, + oldBankAccountName, + oldMaskedBankAccountNumber, + }: { + bankAccountName: string; + maskedBankAccountNumber: string; + oldBankAccountName: string; + oldMaskedBankAccountNumber: string; + }) => + `Standard-Geschäftsbankkonto geändert zu „${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}“ (zuvor „${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber}“)`, }, roomMembersPage: { memberNotFound: 'Mitglied nicht gefunden.', diff --git a/src/languages/fr.ts b/src/languages/fr.ts index ae5ac067e1a2..8c7bfe7b07c9 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -6626,6 +6626,22 @@ Exigez des informations de dépense comme les reçus et les descriptions, défin previousForwardsTo ? `a modifié le flux d’approbation pour ${approver} afin de ne plus transférer les rapports approuvés (auparavant transférés à ${previousForwardsTo})` : `a modifié le flux d'approbation pour ${approver} afin de ne plus transférer les rapports approuvés`, + setDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `définir le compte bancaire professionnel par défaut sur « ${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber} »`, + removedDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `a supprimé le compte bancaire professionnel par défaut « ${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber} »`, + changedDefaultBankAccount: ({ + bankAccountName, + maskedBankAccountNumber, + oldBankAccountName, + oldMaskedBankAccountNumber, + }: { + bankAccountName: string; + maskedBankAccountNumber: string; + oldBankAccountName: string; + oldMaskedBankAccountNumber: string; + }) => + `a modifié le compte bancaire professionnel par défaut en « ${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber} » (auparavant « ${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber} »)`, }, roomMembersPage: { memberNotFound: 'Membre introuvable.', diff --git a/src/languages/it.ts b/src/languages/it.ts index b370b5ddebee..4a79581a11ab 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -6599,6 +6599,22 @@ Richiedi dettagli di spesa come ricevute e descrizioni, imposta limiti e valori } } }, + setDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `imposta il conto bancario aziendale predefinito su "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, + removedDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `ha rimosso il conto bancario aziendale predefinito "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, + changedDefaultBankAccount: ({ + bankAccountName, + maskedBankAccountNumber, + oldBankAccountName, + oldMaskedBankAccountNumber, + }: { + bankAccountName: string; + maskedBankAccountNumber: string; + oldBankAccountName: string; + oldMaskedBankAccountNumber: string; + }) => + `ha modificato il conto bancario aziendale predefinito in "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}" (precedentemente "${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber}")`, }, roomMembersPage: { memberNotFound: 'Membro non trovato.', diff --git a/src/languages/ja.ts b/src/languages/ja.ts index b04db3fc0ecd..5a5b991de66f 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -6545,6 +6545,22 @@ ${reportName} } } }, + setDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `デフォルトのビジネス銀行口座を「${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}」に設定`, + removedDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `デフォルトのビジネス銀行口座「${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}」を削除しました`, + changedDefaultBankAccount: ({ + bankAccountName, + maskedBankAccountNumber, + oldBankAccountName, + oldMaskedBankAccountNumber, + }: { + bankAccountName: string; + maskedBankAccountNumber: string; + oldBankAccountName: string; + oldMaskedBankAccountNumber: string; + }) => + `デフォルトのビジネス銀行口座を「${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}」(以前は「${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber}」)に変更しました`, }, roomMembersPage: { memberNotFound: 'メンバーが見つかりません。', diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 975dcd6e1f67..fb7c89ecd476 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -6586,6 +6586,22 @@ Vraag verplichte uitgavedetails zoals bonnetjes en beschrijvingen, stel limieten previousForwardsTo ? `heeft de goedkeuringsworkflow voor ${approver} gewijzigd zodat goedgekeurde rapporten niet meer worden doorgestuurd (voorheen doorgestuurd naar ${previousForwardsTo})` : `heeft de goedkeuringsworkflow voor ${approver} gewijzigd zodat goedgekeurde rapporten niet meer worden doorgestuurd`, + setDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `stel de standaard zakelijke bankrekening in op "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, + removedDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `heeft de standaard zakelijke bankrekening "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}" verwijderd`, + changedDefaultBankAccount: ({ + bankAccountName, + maskedBankAccountNumber, + oldBankAccountName, + oldMaskedBankAccountNumber, + }: { + bankAccountName: string; + maskedBankAccountNumber: string; + oldBankAccountName: string; + oldMaskedBankAccountNumber: string; + }) => + `de standaard zakelijke bankrekening gewijzigd naar "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}" (voorheen "${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber}")`, }, roomMembersPage: { memberNotFound: 'Lid niet gevonden.', diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 4a8bc42f3359..dadc6ea8af81 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -6575,6 +6575,22 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i previousForwardsTo ? `zmieniono proces zatwierdzania dla ${approver}, aby przestać przekazywać zatwierdzone raporty (wcześniej przekazywane do ${previousForwardsTo})` : `zmieniono przepływ zatwierdzania dla ${approver}, aby nie przekazywać dalej zatwierdzonych raportów`, + setDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `ustaw domyślne firmowe konto bankowe na „${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}”`, + removedDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `usunął domyślne firmowe konto bankowe „${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}”`, + changedDefaultBankAccount: ({ + bankAccountName, + maskedBankAccountNumber, + oldBankAccountName, + oldMaskedBankAccountNumber, + }: { + bankAccountName: string; + maskedBankAccountNumber: string; + oldBankAccountName: string; + oldMaskedBankAccountNumber: string; + }) => + `zmieniono domyślne firmowe konto bankowe na „${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}” (wcześniej „${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber}”)`, }, roomMembersPage: { memberNotFound: 'Użytkownik nie został znaleziony.', diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 58c21f2b9120..a3565cf50f8d 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -6579,6 +6579,22 @@ Exija detalhes de despesas como recibos e descrições, defina limites e padrõe } } }, + setDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `definir a conta bancária empresarial padrão como "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, + removedDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `removeu a conta bancária empresarial padrão "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, + changedDefaultBankAccount: ({ + bankAccountName, + maskedBankAccountNumber, + oldBankAccountName, + oldMaskedBankAccountNumber, + }: { + bankAccountName: string; + maskedBankAccountNumber: string; + oldBankAccountName: string; + oldMaskedBankAccountNumber: string; + }) => + `alterou a conta bancária empresarial padrão para "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}" (anteriormente "${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber}")`, }, roomMembersPage: { memberNotFound: 'Membro não encontrado.', diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index ae12b55b034d..8ae25a7e2edc 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -6444,6 +6444,22 @@ ${reportName} } } }, + setDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `将默认企业银行账户设置为“${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}”`, + removedDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => + `移除了默认的企业银行账户 “${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}”`, + changedDefaultBankAccount: ({ + bankAccountName, + maskedBankAccountNumber, + oldBankAccountName, + oldMaskedBankAccountNumber, + }: { + bankAccountName: string; + maskedBankAccountNumber: string; + oldBankAccountName: string; + oldMaskedBankAccountNumber: string; + }) => + `已将默认企业银行账户更改为“${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}”(之前为“${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber}”)`, }, roomMembersPage: { memberNotFound: '未找到成员。', From 17ef711b368e85b20aafa50891c29dc5c4018b19 Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Tue, 30 Dec 2025 23:56:44 +0100 Subject: [PATCH 4/9] add message handling --- src/libs/ReportUtils.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index 31008bfbf6dd..7ff8f17c5002 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -203,6 +203,7 @@ import { getSortedReportActions, getSubmitsToUpdateMessage, getTravelUpdateMessage, + getUpdateACHAccountMessage, getWorkspaceAttendeeTrackingUpdateMessage, getWorkspaceCurrencyUpdateMessage, getWorkspaceCustomUnitRateAddedMessage, @@ -5827,6 +5828,9 @@ function getReportName( if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FEATURE_ENABLED) { return getWorkspaceFeatureEnabledMessage(parentReportAction); } + if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT) { + return getUpdateACHAccountMessage(parentReportAction); + } if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.MERGED_WITH_CASH_TRANSACTION) { // eslint-disable-next-line @typescript-eslint/no-deprecated return translateLocal('systemMessage.mergedWithCashTransaction'); From db55ef03f4b2b6df86573115673cddb77e721aca Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Wed, 31 Dec 2025 00:27:18 +0100 Subject: [PATCH 5/9] prettier --- src/libs/ReportActionsUtils.ts | 7 ++++++- src/libs/SidebarUtils.ts | 2 +- src/pages/home/report/ContextMenu/ContextMenuActions.tsx | 2 +- src/pages/home/report/PureReportActionItem.tsx | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index 9029a9c42444..f7b0f3c02449 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -3110,7 +3110,12 @@ function getUpdateACHAccountMessage(action: ReportAction): string { // Case 3: Changing from one bank account to another if (!!maskedBankAccountNumber && !!oldMaskedBankAccountNumber) { // eslint-disable-next-line @typescript-eslint/no-deprecated - return translateLocal('workspaceActions.changedDefaultBankAccount', {bankAccountName: bankAccountName ?? '', maskedBankAccountNumber, oldBankAccountName: oldBankAccountName ?? '', oldMaskedBankAccountNumber}); + return translateLocal('workspaceActions.changedDefaultBankAccount', { + bankAccountName: bankAccountName ?? '', + maskedBankAccountNumber, + oldBankAccountName: oldBankAccountName ?? '', + oldMaskedBankAccountNumber, + }); } return getReportActionText(action); diff --git a/src/libs/SidebarUtils.ts b/src/libs/SidebarUtils.ts index b6ed9fe3c631..05c507a0bb75 100644 --- a/src/libs/SidebarUtils.ts +++ b/src/libs/SidebarUtils.ts @@ -58,6 +58,7 @@ import { getSubmitsToUpdateMessage, getTagListNameUpdatedMessage, getTravelUpdateMessage, + getUpdateACHAccountMessage, getUpdatedApprovalRuleMessage, getUpdatedAuditRateMessage, getUpdatedManualApprovalThresholdMessage, @@ -73,7 +74,6 @@ import { getWorkspaceFeatureEnabledMessage, getWorkspaceFrequencyUpdateMessage, getWorkspaceReimbursementUpdateMessage, - getUpdateACHAccountMessage, getWorkspaceReportFieldAddMessage, getWorkspaceReportFieldDeleteMessage, getWorkspaceReportFieldUpdateMessage, diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx index f88eb4bc64e2..e49a32b6d448 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx @@ -58,6 +58,7 @@ import { getSubmitsToUpdateMessage, getTagListNameUpdatedMessage, getTravelUpdateMessage, + getUpdateACHAccountMessage, getUpdatedApprovalRuleMessage, getUpdatedAuditRateMessage, getUpdatedManualApprovalThresholdMessage, @@ -73,7 +74,6 @@ import { getWorkspaceFeatureEnabledMessage, getWorkspaceFrequencyUpdateMessage, getWorkspaceReimbursementUpdateMessage, - getUpdateACHAccountMessage, getWorkspaceReportFieldAddMessage, getWorkspaceReportFieldDeleteMessage, getWorkspaceReportFieldUpdateMessage, diff --git a/src/pages/home/report/PureReportActionItem.tsx b/src/pages/home/report/PureReportActionItem.tsx index 9066e7b9bf24..06a44ad79575 100644 --- a/src/pages/home/report/PureReportActionItem.tsx +++ b/src/pages/home/report/PureReportActionItem.tsx @@ -95,6 +95,7 @@ import { getSubmitsToUpdateMessage, getTagListNameUpdatedMessage, getTravelUpdateMessage, + getUpdateACHAccountMessage, getUpdatedApprovalRuleMessage, getUpdatedAuditRateMessage, getUpdatedManualApprovalThresholdMessage, @@ -109,7 +110,6 @@ import { getWorkspaceFeatureEnabledMessage, getWorkspaceFrequencyUpdateMessage, getWorkspaceReimbursementUpdateMessage, - getUpdateACHAccountMessage, getWorkspaceReportFieldAddMessage, getWorkspaceReportFieldDeleteMessage, getWorkspaceReportFieldUpdateMessage, From d4613ce88a3b96cc7bea0152d822e8b218ac722b Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Wed, 7 Jan 2026 23:12:22 +0100 Subject: [PATCH 6/9] Refactor translateLocal usages --- src/libs/ReportActionsUtils.ts | 12 ++++-------- src/libs/ReportUtils.ts | 3 ++- src/libs/SidebarUtils.ts | 2 +- .../home/report/ContextMenu/ContextMenuActions.tsx | 2 +- src/pages/home/report/PureReportActionItem.tsx | 2 +- 5 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index c2dcd846eb38..c06ab21d94c7 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -3064,23 +3064,19 @@ type UpdateACHAccountOriginalMessage = { oldMaskedBankAccountNumber?: string; }; -function getUpdateACHAccountMessage(action: ReportAction): string { +function getUpdateACHAccountMessage(translate: LocalizedTranslate, action: ReportAction): string { const {bankAccountName, maskedBankAccountNumber, oldBankAccountName, oldMaskedBankAccountNumber} = (getOriginalMessage(action as ReportAction) as UpdateACHAccountOriginalMessage | undefined) ?? {}; if (!!maskedBankAccountNumber && !oldMaskedBankAccountNumber) { - // eslint-disable-next-line @typescript-eslint/no-deprecated - return translateLocal('workspaceActions.setDefaultBankAccount', {bankAccountName: bankAccountName ?? '', maskedBankAccountNumber}); + return translate('workspaceActions.setDefaultBankAccount', {bankAccountName: bankAccountName ?? '', maskedBankAccountNumber}); } if (!maskedBankAccountNumber && oldMaskedBankAccountNumber) { - // eslint-disable-next-line @typescript-eslint/no-deprecated - return translateLocal('workspaceActions.removedDefaultBankAccount', {bankAccountName: oldBankAccountName ?? '', maskedBankAccountNumber: oldMaskedBankAccountNumber}); + return translate('workspaceActions.removedDefaultBankAccount', {bankAccountName: oldBankAccountName ?? '', maskedBankAccountNumber: oldMaskedBankAccountNumber}); } - // Case 3: Changing from one bank account to another if (!!maskedBankAccountNumber && !!oldMaskedBankAccountNumber) { - // eslint-disable-next-line @typescript-eslint/no-deprecated - return translateLocal('workspaceActions.changedDefaultBankAccount', { + return translate('workspaceActions.changedDefaultBankAccount', { bankAccountName: bankAccountName ?? '', maskedBankAccountNumber, oldBankAccountName: oldBankAccountName ?? '', diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index cf075756dc5e..16060e27f422 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -5649,7 +5649,8 @@ function getReportName( return getWorkspaceFeatureEnabledMessage(translateLocal, parentReportAction); } if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT) { - return getUpdateACHAccountMessage(parentReportAction); + // eslint-disable-next-line @typescript-eslint/no-deprecated + return getUpdateACHAccountMessage(translateLocal, parentReportAction); } if (parentReportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.MERGED_WITH_CASH_TRANSACTION) { // eslint-disable-next-line @typescript-eslint/no-deprecated diff --git a/src/libs/SidebarUtils.ts b/src/libs/SidebarUtils.ts index cc9b53d34de3..8638f808c05a 100644 --- a/src/libs/SidebarUtils.ts +++ b/src/libs/SidebarUtils.ts @@ -907,7 +907,7 @@ function getOptionData({ } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_REIMBURSEMENT_ENABLED) { result.alternateText = getWorkspaceReimbursementUpdateMessage(translate, lastAction); } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT) { - result.alternateText = getUpdateACHAccountMessage(lastAction); + result.alternateText = getUpdateACHAccountMessage(translate, lastAction); } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT) { result.alternateText = getPolicyChangeLogMaxExpenseAmountNoReceiptMessage(translate, lastAction); } else if (lastAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT) { diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx index f3dd3283187a..c729dc03c0d6 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx @@ -745,7 +745,7 @@ const ContextMenuActions: ContextMenuAction[] = [ } else if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_REIMBURSEMENT_ENABLED) { Clipboard.setString(getWorkspaceReimbursementUpdateMessage(translate, reportAction)); } else if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT) { - Clipboard.setString(getUpdateACHAccountMessage(reportAction)); + Clipboard.setString(getUpdateACHAccountMessage(translate, reportAction)); } else if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT) { Clipboard.setString(getPolicyChangeLogMaxExpenseAmountNoReceiptMessage(translate, reportAction)); } else if (reportAction.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT) { diff --git a/src/pages/home/report/PureReportActionItem.tsx b/src/pages/home/report/PureReportActionItem.tsx index 5e783993dbc6..85d41f08a11a 100644 --- a/src/pages/home/report/PureReportActionItem.tsx +++ b/src/pages/home/report/PureReportActionItem.tsx @@ -1456,7 +1456,7 @@ function PureReportActionItem({ } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_REIMBURSEMENT_ENABLED)) { children = ; } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT)) { - children = ; + children = ; } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT)) { children = ; } else if (isActionOfType(action, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_MAX_EXPENSE_AMOUNT)) { From 69b8644c82be89c29edc4ff5c7ab72c18bc51317 Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Wed, 14 Jan 2026 11:24:49 +0100 Subject: [PATCH 7/9] update spanish translation --- src/languages/es.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/languages/es.ts b/src/languages/es.ts index 0bc729b16593..5228d1d912c3 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -5973,9 +5973,9 @@ ${amount} para ${merchant} - ${date}`, }, workspaceActions: { setDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => - `estableció la cuenta bancaria empresarial predeterminada en "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, + `estableció la cuenta bancaria de empresa predeterminada a "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, removedDefaultBankAccount: ({bankAccountName, maskedBankAccountNumber}: {bankAccountName: string; maskedBankAccountNumber: string}) => - `eliminó la cuenta bancaria empresarial predeterminada "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, + `eliminó la cuenta bancaria de empresa predeterminada "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}"`, changedDefaultBankAccount: ({ bankAccountName, maskedBankAccountNumber, @@ -5987,7 +5987,7 @@ ${amount} para ${merchant} - ${date}`, oldBankAccountName: string; oldMaskedBankAccountNumber: string; }) => - `cambió la cuenta bancaria empresarial predeterminada a "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}" (previamente "${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber}")`, + `cambió la cuenta bancaria de empresa predeterminada a "${bankAccountName ? `${bankAccountName}: ` : ''}${maskedBankAccountNumber}" (previamente "${oldBankAccountName ? `${oldBankAccountName}: ` : ''}${oldMaskedBankAccountNumber}")`, changedCompanyAddress: ({newAddress, previousAddress}: {newAddress: string; previousAddress?: string}) => previousAddress ? `cambió la dirección de la empresa a "${newAddress}" (anteriormente "${previousAddress}")` : `estableció la dirección de la empresa en "${newAddress}"`, addApprovalRule: (approverEmail, approverName, field, name) => `añadió a ${approverName} (${approverEmail}) como aprobador para la ${field} "${name}"`, From 946bd3e9945821f909b66f324004f261f232aedb Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Wed, 14 Jan 2026 11:41:06 +0100 Subject: [PATCH 8/9] add automated tests --- tests/unit/ReportActionsUtilsTest.ts | 121 +++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/tests/unit/ReportActionsUtilsTest.ts b/tests/unit/ReportActionsUtilsTest.ts index 9c513195db2c..543d434463b6 100644 --- a/tests/unit/ReportActionsUtilsTest.ts +++ b/tests/unit/ReportActionsUtilsTest.ts @@ -18,6 +18,7 @@ import { getOriginalMessage, getReportActionActorAccountID, getSendMoneyFlowAction, + getUpdateACHAccountMessage, isIOUActionMatchingTransactionList, } from '../../src/libs/ReportActionsUtils'; import {buildOptimisticCreatedReportForUnapprovedAction} from '../../src/libs/ReportUtils'; @@ -2391,6 +2392,126 @@ describe('ReportActionsUtils', () => { }); }); + describe('getUpdateACHAccountMessage', () => { + it('should return "set" message when setting the default bank account for the first time', () => { + // Given an UPDATE_ACH_ACCOUNT action with only new bank account info + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT, + reportActionID: '1', + created: '', + originalMessage: { + bankAccountName: 'Business Checking', + maskedBankAccountNumber: 'XXXX1234', + }, + } as ReportAction; + + // When getting the update message + const result = getUpdateACHAccountMessage(translateLocal, action); + + // Then it should return the correct message + expect(result).toBe('set the default business bank account to "Business Checking: XXXX1234"'); + }); + + it('should return "set" message without bank name when bankAccountName is empty', () => { + // Given an UPDATE_ACH_ACCOUNT action with only new bank account maskedBankAccountNumber + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT, + reportActionID: '1', + created: '', + originalMessage: { + bankAccountName: '', + maskedBankAccountNumber: 'XXXX1234', + }, + } as ReportAction; + + // When getting the update message + const result = getUpdateACHAccountMessage(translateLocal, action); + + // Then it should return the correct message + expect(result).toBe('set the default business bank account to "XXXX1234"'); + }); + + it('should return "removed" message when removing the default bank account', () => { + // Given an UPDATE_ACH_ACCOUNT action with only old bank account info + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT, + reportActionID: '1', + created: '', + originalMessage: { + oldBankAccountName: 'Business Checking', + oldMaskedBankAccountNumber: 'XXXX5678', + }, + } as ReportAction; + + // When getting the update message + const result = getUpdateACHAccountMessage(translateLocal, action); + + // Then it should return the correct message + expect(result).toBe('removed the default business bank account "Business Checking: XXXX5678"'); + }); + + it('should return "removed" message without bank name when oldBankAccountName is empty', () => { + // Given an UPDATE_ACH_ACCOUNT action with only old bank account maskedBankAccountNumber + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT, + reportActionID: '1', + created: '', + originalMessage: { + oldBankAccountName: '', + oldMaskedBankAccountNumber: 'XXXX5678', + }, + } as ReportAction; + + // When getting the update message + const result = getUpdateACHAccountMessage(translateLocal, action); + + // Then it should return the correct message + expect(result).toBe('removed the default business bank account "XXXX5678"'); + }); + + it('should return "changed" message when changing from one bank account to another', () => { + // Given an UPDATE_ACH_ACCOUNT action with both new and old bank account info + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT, + reportActionID: '1', + created: '', + originalMessage: { + bankAccountName: 'Savings Account', + maskedBankAccountNumber: 'XXXX5678', + oldBankAccountName: 'Business Checking', + oldMaskedBankAccountNumber: 'XXXX1234', + }, + } as ReportAction; + + // When getting the update message + const result = getUpdateACHAccountMessage(translateLocal, action); + + // Then it should return the correct message + expect(result).toBe('changed the default business bank account to "Savings Account: XXXX5678" (previously "Business Checking: XXXX1234")'); + }); + + it('should return "changed" message with partial bank names when some names are empty', () => { + // Given an UPDATE_ACH_ACCOUNT action where new bank has a name but old bank does not + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT, + reportActionID: '1', + created: '', + originalMessage: { + bankAccountName: 'Savings Account', + maskedBankAccountNumber: 'XXXX5678', + oldBankAccountName: '', + oldMaskedBankAccountNumber: 'XXXX1234', + }, + } as ReportAction; + + // When getting the update message + const result = getUpdateACHAccountMessage(translateLocal, action); + + // Then it should return the correct message + expect(result).toBe('changed the default business bank account to "Savings Account: XXXX5678" (previously "XXXX1234")'); + }); + }); + describe('getWorkspaceCustomUnitRateUpdatedMessage', () => { it('should return the correct message when a rate is enabled', () => { const action: ReportAction = { From 29b69a1f3c0454373eaa9815ba9a07ae092bf05b Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Mon, 19 Jan 2026 20:05:44 +0100 Subject: [PATCH 9/9] add UPDATE_ACH_ACCOUNT action handling in all relevant functions --- src/libs/OptionsListUtils/index.ts | 5 +++++ src/libs/ReportNameUtils.ts | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/src/libs/OptionsListUtils/index.ts b/src/libs/OptionsListUtils/index.ts index 4eea33f6bce5..a49c96726021 100644 --- a/src/libs/OptionsListUtils/index.ts +++ b/src/libs/OptionsListUtils/index.ts @@ -57,6 +57,7 @@ import { getRoomChangeLogMessage, getSortedReportActions, getTravelUpdateMessage, + getUpdateACHAccountMessage, getUpdateRoomDescriptionMessage, hasPendingDEWSubmit, isActionableAddPaymentCard, @@ -825,6 +826,10 @@ function getLastMessageTextForReport({ // eslint-disable-next-line @typescript-eslint/no-deprecated lastMessageTextFromReport = getPolicyChangeLogMaxExpenseAgeMessage(translateLocal, lastReportAction); } + if (isActionOfType(lastReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT)) { + // eslint-disable-next-line @typescript-eslint/no-deprecated + lastMessageTextFromReport = getUpdateACHAccountMessage(translateLocal, lastReportAction); + } // we do not want to show report closed in LHN for non archived report so use getReportLastMessage as fallback instead of lastMessageText from report if (reportID && !isReportArchived && report.lastActionType === CONST.REPORT.ACTIONS.TYPE.CLOSED) { diff --git a/src/libs/ReportNameUtils.ts b/src/libs/ReportNameUtils.ts index d864cd7de7c2..916a7f5a8a68 100644 --- a/src/libs/ReportNameUtils.ts +++ b/src/libs/ReportNameUtils.ts @@ -51,6 +51,7 @@ import { getReportActionMessage as getReportActionMessageFromActionsUtils, getReportActionText, getTravelUpdateMessage, + getUpdateACHAccountMessage, getWorkspaceCurrencyUpdateMessage, getWorkspaceCustomUnitRateAddedMessage, getWorkspaceCustomUnitRateDeletedMessage, @@ -454,6 +455,9 @@ function computeReportNameBasedOnReportAction( if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_DEFAULT_TITLE)) { return getPolicyChangeLogDefaultTitleMessage(translate, parentReportAction); } + if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_ACH_ACCOUNT)) { + return getUpdateACHAccountMessage(translate, parentReportAction); + } if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.ACTIONABLE_CARD_FRAUD_ALERT) && getOriginalMessage(parentReportAction)?.resolution) { return getActionableCardFraudAlertResolutionMessage(translate, parentReportAction);