From 5ace84ce2a70d5db8457acdfd67a1cd1f6e7169a Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Thu, 8 Jan 2026 23:08:36 +0100 Subject: [PATCH 1/9] Implement policy change log for: Taxes - set/change default tax rates, change custom tax name --- src/CONST/index.ts | 3 ++ src/languages/de.ts | 9 ++++- src/languages/en.ts | 7 ++++ src/languages/es.ts | 3 ++ src/languages/fr.ts | 8 +++++ src/languages/it.ts | 10 +++++- src/languages/ja.ts | 6 ++++ src/languages/nl.ts | 10 +++++- src/languages/params.ts | 9 +++++ src/languages/pl.ts | 10 +++++- src/languages/pt-BR.ts | 8 +++++ src/languages/zh-hans.ts | 8 ++++- src/libs/ReportActionsUtils.ts | 33 +++++++++++++++++++ src/libs/SidebarUtils.ts | 9 +++++ .../report/ContextMenu/ContextMenuActions.tsx | 9 +++++ .../home/report/PureReportActionItem.tsx | 9 +++++ 16 files changed, 146 insertions(+), 5 deletions(-) diff --git a/src/CONST/index.ts b/src/CONST/index.ts index 3098f434f6c49..4159925d541c5 100755 --- a/src/CONST/index.ts +++ b/src/CONST/index.ts @@ -1356,6 +1356,9 @@ const CONST = { UPDATE_DEFAULT_APPROVER: 'POLICYCHANGELOG_UPDATE_DEFAULT_APPROVER', UPDATE_SUBMITS_TO: 'POLICYCHANGELOG_UPDATE_SUBMITS_TO', UPDATE_FORWARDS_TO: 'POLICYCHANGELOG_UPDATE_FORWARDS_TO', + UPDATE_CUSTOM_TAX_NAME: 'POLICYCHANGELOG_UPDATE_CUSTOM_TAX_NAME', + UPDATE_CURRENCY_DEFAULT_TAX: 'POLICYCHANGELOG_UPDATE_CURRENCY_DEFAULT_TAX', + UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX: 'POLICYCHANGELOG_UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX', UPDATE_MANUAL_APPROVAL_THRESHOLD: 'POLICYCHANGELOG_UPDATE_MANUAL_APPROVAL_THRESHOLD', UPDATE_MAX_EXPENSE_AMOUNT: 'POLICYCHANGELOG_UPDATE_MAX_EXPENSE_AMOUNT', UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT: 'POLICYCHANGELOG_UPDATE_MAX_EXPENSE_AMOUNT_NO_RECEIPT', diff --git a/src/languages/de.ts b/src/languages/de.ts index d484e3951f26a..498599b8c331b 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -151,7 +151,9 @@ import type { UpdatedPolicyCategoryMaxExpenseAmountParams, UpdatedPolicyCategoryNameParams, UpdatedPolicyCategoryParams, + UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCurrencyParams, + UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitRateEnabledParams, UpdatedPolicyCustomUnitRateParams, UpdatedPolicyCustomUnitTaxClaimablePercentageParams, @@ -159,6 +161,7 @@ import type { UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, UpdatedPolicyFieldWithValueParam, + UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyPreventSelfApprovalParams, @@ -6550,7 +6553,11 @@ Fordere Spesendetails wie Belege und Beschreibungen an, lege Limits und Standard ? `hat den Genehmigungsworkflow für ${approver} so geändert, dass genehmigte Berichte nicht mehr weitergeleitet werden (zuvor weitergeleitet an ${previousForwardsTo})` : `hat den Genehmigungsworkflow für ${approver} so geändert, dass genehmigte Berichte nicht mehr weitergeleitet werden`, updateReimbursementEnabled: ({enabled}: UpdatedPolicyReimbursementEnabledParams) => `${enabled ? 'aktiviert' : 'deaktiviert'} Erstattungen`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `die Steuer „${taxName}“ hinzugefügt`, + updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `benutzerdefinierten Steuernamen in „${newName}" geändert (zuvor „${oldName}")`, + updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => `Standard-Steuerbetrag der Workspace-Währung auf „${newName}" geändert (zuvor „${oldName}")`, + updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => + `den Standardsteuersatz für Fremdwährungen in „${newName}" geändert (zuvor „${oldName}")`, + addTax: ({taxName}: UpdatedPolicyTaxParams) => `die Steuer „${taxName}" hinzugefügt`, deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `hat die Steuer „${taxName}“ entfernt`, updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { if (!updatedField) { diff --git a/src/languages/en.ts b/src/languages/en.ts index 54356f33f9a31..85af1c9ab6ef7 100755 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -139,7 +139,9 @@ import type { UpdatedPolicyCategoryMaxExpenseAmountParams, UpdatedPolicyCategoryNameParams, UpdatedPolicyCategoryParams, + UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCurrencyParams, + UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitRateEnabledParams, UpdatedPolicyCustomUnitRateParams, UpdatedPolicyCustomUnitTaxClaimablePercentageParams, @@ -147,6 +149,7 @@ import type { UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, UpdatedPolicyFieldWithValueParam, + UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyPreventSelfApprovalParams, @@ -6425,6 +6428,10 @@ const translations = { ? `changed the approval workflow for ${approver} to stop forwarding approved reports (previously forwarded to ${previousForwardsTo})` : `changed the approval workflow for ${approver} to stop forwarding approved reports`, updateReimbursementEnabled: ({enabled}: UpdatedPolicyReimbursementEnabledParams) => `${enabled ? 'enabled' : 'disabled'} reimbursements`, + updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `changed the custom tax name to "${newName}" (previously "${oldName}")`, + updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => `changed the workspace currency default tax rate to "${newName}" (previously "${oldName}")`, + updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => + `changed the foreign currency default tax rate to "${newName}" (previously "${oldName}")`, addTax: ({taxName}: UpdatedPolicyTaxParams) => `added the tax "${taxName}"`, deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `removed the tax "${taxName}"`, updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { diff --git a/src/languages/es.ts b/src/languages/es.ts index 7612dead1b774..9b09cc5b9a999 100644 --- a/src/languages/es.ts +++ b/src/languages/es.ts @@ -6173,6 +6173,9 @@ ${amount} para ${merchant} - ${date}`, previousForwardsTo ? `cambió el flujo de aprobación para ${approver} para dejar de reenviar informes aprobados (anteriormente reenviados a ${previousForwardsTo})` : `cambió el flujo de aprobación para ${approver} para dejar de reenviar informes aprobados`, + updateCustomTaxName: ({oldName, newName}) => `cambió el nombre del impuesto personalizado a "${newName}" (antes "${oldName}")`, + updateCurrencyDefaultTax: ({oldName, newName}) => `cambió la tasa impositiva predeterminada de la moneda del espacio de trabajo a "${newName}" (anteriormente "${oldName}")`, + updateForeignCurrencyDefaultTax: ({oldName, newName}) => `cambió la tasa impositiva predeterminada de la moneda extranjera a "${newName}" (anteriormente "${oldName}")`, addTax: ({taxName}) => `añadió el impuesto "${taxName}"`, deleteTax: ({taxName}) => `eliminó el impuesto "${taxName}"`, updateTax: ({oldValue, taxName, updatedField, newValue}) => { diff --git a/src/languages/fr.ts b/src/languages/fr.ts index 2a542dc401194..7b5b49f63017d 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -151,7 +151,9 @@ import type { UpdatedPolicyCategoryMaxExpenseAmountParams, UpdatedPolicyCategoryNameParams, UpdatedPolicyCategoryParams, + UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCurrencyParams, + UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitRateEnabledParams, UpdatedPolicyCustomUnitRateParams, UpdatedPolicyCustomUnitTaxClaimablePercentageParams, @@ -159,6 +161,7 @@ import type { UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, UpdatedPolicyFieldWithValueParam, + UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyPreventSelfApprovalParams, @@ -6510,6 +6513,11 @@ Exigez des informations de dépense comme les reçus et les descriptions, défin }, updatedAttendeeTracking: ({enabled}: {enabled: boolean}) => `suivi des participants ${enabled ? 'activé' : 'Désactivé'}`, updateReimbursementEnabled: ({enabled}: UpdatedPolicyReimbursementEnabledParams) => `${enabled ? 'activé' : 'désactivé'} remboursements`, + updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `a modifié le nom de taxe personnalisé en « ${newName} » (auparavant « ${oldName} »)`, + updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => + `a modifié le taux de taxe par défaut de la devise de l'espace de travail en « ${newName} » (auparavant « ${oldName} »)`, + updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => + `a modifié le taux de taxe par défaut en devise étrangère en « ${newName} » (auparavant « ${oldName} »)`, addTax: ({taxName}: UpdatedPolicyTaxParams) => `a ajouté la taxe « ${taxName} »`, deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `a supprimé la taxe « ${taxName} »`, updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { diff --git a/src/languages/it.ts b/src/languages/it.ts index 39ec147b302be..4c6eda4a3d415 100644 --- a/src/languages/it.ts +++ b/src/languages/it.ts @@ -151,7 +151,9 @@ import type { UpdatedPolicyCategoryMaxExpenseAmountParams, UpdatedPolicyCategoryNameParams, UpdatedPolicyCategoryParams, + UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCurrencyParams, + UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitRateEnabledParams, UpdatedPolicyCustomUnitRateParams, UpdatedPolicyCustomUnitTaxClaimablePercentageParams, @@ -159,6 +161,7 @@ import type { UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, UpdatedPolicyFieldWithValueParam, + UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyPreventSelfApprovalParams, @@ -6537,7 +6540,12 @@ Richiedi dettagli di spesa come ricevute e descrizioni, imposta limiti e valori : `ha modificato il flusso di approvazione per ${approver} per interrompere l'inoltro dei report approvati`, updatedAttendeeTracking: ({enabled}: {enabled: boolean}) => `Monitoraggio partecipanti ${enabled ? 'abilitato' : 'disabilitato'}`, updateReimbursementEnabled: ({enabled}: UpdatedPolicyReimbursementEnabledParams) => `${enabled ? 'abilitato' : 'disabilitato'} rimborsi`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `ha aggiunto l’imposta "${taxName}"`, + updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `ha cambiato il nome dell'imposta personalizzata in "${newName}" (precedentemente "${oldName}")`, + updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => + `ha modificato l'aliquota fiscale predefinita della valuta dello spazio di lavoro in "${newName}" (in precedenza "${oldName}")`, + updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => + `ha modificato l'aliquota fiscale predefinita per valuta estera in "${newName}" (in precedenza "${oldName}")`, + addTax: ({taxName}: UpdatedPolicyTaxParams) => `ha aggiunto l'imposta "${taxName}"`, deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `ha rimosso l'imposta "${taxName}"`, updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { if (!updatedField) { diff --git a/src/languages/ja.ts b/src/languages/ja.ts index 585887c4c2210..07655a7987d55 100644 --- a/src/languages/ja.ts +++ b/src/languages/ja.ts @@ -151,7 +151,9 @@ import type { UpdatedPolicyCategoryMaxExpenseAmountParams, UpdatedPolicyCategoryNameParams, UpdatedPolicyCategoryParams, + UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCurrencyParams, + UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitRateEnabledParams, UpdatedPolicyCustomUnitRateParams, UpdatedPolicyCustomUnitTaxClaimablePercentageParams, @@ -159,6 +161,7 @@ import type { UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, UpdatedPolicyFieldWithValueParam, + UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyPreventSelfApprovalParams, @@ -6483,6 +6486,9 @@ ${reportName} : `承認済みレポートの転送を停止するように、${approver} の承認ワークフローを変更しました`, updatedAttendeeTracking: ({enabled}: {enabled: boolean}) => `${enabled ? '有効' : '無効'} 出席者の追跡`, updateReimbursementEnabled: ({enabled}: UpdatedPolicyReimbursementEnabledParams) => `${enabled ? '有効' : '無効'} 件の払い戻し`, + updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `カスタム税区分名を「${newName}」(以前は「${oldName}」)に変更しました`, + updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => `ワークスペースの通貨デフォルト税率を「${newName}」(以前は「${oldName}」)に変更しました`, + updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => `外貨のデフォルト税率を「${newName}」に変更しました(以前は「${oldName}」)。`, addTax: ({taxName}: UpdatedPolicyTaxParams) => `税「${taxName}」を追加しました`, deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `税「${taxName}」を削除しました`, updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { diff --git a/src/languages/nl.ts b/src/languages/nl.ts index 026e47d8dd03a..d5a828d1fe16a 100644 --- a/src/languages/nl.ts +++ b/src/languages/nl.ts @@ -151,7 +151,9 @@ import type { UpdatedPolicyCategoryMaxExpenseAmountParams, UpdatedPolicyCategoryNameParams, UpdatedPolicyCategoryParams, + UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCurrencyParams, + UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitRateEnabledParams, UpdatedPolicyCustomUnitRateParams, UpdatedPolicyCustomUnitTaxClaimablePercentageParams, @@ -159,6 +161,7 @@ import type { UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, UpdatedPolicyFieldWithValueParam, + UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyPreventSelfApprovalParams, @@ -6470,7 +6473,12 @@ Vraag verplichte uitgavedetails zoals bonnetjes en beschrijvingen, stel limieten }, updatedAttendeeTracking: ({enabled}: {enabled: boolean}) => `${enabled ? 'ingeschakeld' : 'Uitgeschakeld'} bijhouden van deelnemers`, updateReimbursementEnabled: ({enabled}: UpdatedPolicyReimbursementEnabledParams) => `${enabled ? 'ingeschakeld' : 'uitgeschakeld'} terugbetalingen`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `heeft de belasting “${taxName}” toegevoegd`, + updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `de aangepaste belastingnaam gewijzigd in "${newName}" (voorheen "${oldName}")`, + updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => + `heeft het standaardbelastingtarief van de werkruimtevaluta gewijzigd in "${newName}" (voorheen "${oldName}")`, + updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => + `heeft het standaardbelastingtarief voor vreemde valuta gewijzigd in '${newName}' (voorheen '${oldName}')`, + addTax: ({taxName}: UpdatedPolicyTaxParams) => `heeft de belasting "${taxName}" toegevoegd`, deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `heeft de belasting “${taxName}” verwijderd`, updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { if (!updatedField) { diff --git a/src/languages/params.ts b/src/languages/params.ts index b505041d14fb7..86be337736141 100644 --- a/src/languages/params.ts +++ b/src/languages/params.ts @@ -302,6 +302,12 @@ type UpdatedPolicyManualApprovalThresholdParams = {oldLimit: string; newLimit: s type UpdatedPolicyReimbursementEnabledParams = {enabled: boolean}; +type UpdatedPolicyCustomTaxNameParams = {oldName: string; newName: string}; + +type UpdatedPolicyCurrencyDefaultTaxParams = {oldName: string; newName: string}; + +type UpdatedPolicyForeignCurrencyDefaultTaxParams = {oldName: string; newName: string}; + type ExportedToIntegrationParams = {label: string; markedManually?: boolean; inProgress?: boolean; lastModified?: string}; type IntegrationsMessageParams = { @@ -786,6 +792,9 @@ export type { UpdatedPolicyAuditRateParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyReimbursementEnabledParams, + UpdatedPolicyCustomTaxNameParams, + UpdatedPolicyCurrencyDefaultTaxParams, + UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatePolicyCustomUnitTaxEnabledParams, UpdatePolicyCustomUnitParams, UpdatedPolicyApprovalRuleParams, diff --git a/src/languages/pl.ts b/src/languages/pl.ts index 069ba463425b1..20ae28953daad 100644 --- a/src/languages/pl.ts +++ b/src/languages/pl.ts @@ -151,7 +151,9 @@ import type { UpdatedPolicyCategoryMaxExpenseAmountParams, UpdatedPolicyCategoryNameParams, UpdatedPolicyCategoryParams, + UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCurrencyParams, + UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitRateEnabledParams, UpdatedPolicyCustomUnitRateParams, UpdatedPolicyCustomUnitTaxClaimablePercentageParams, @@ -159,6 +161,7 @@ import type { UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, UpdatedPolicyFieldWithValueParam, + UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyPreventSelfApprovalParams, @@ -6459,7 +6462,12 @@ Wymagaj szczegółów wydatków, takich jak paragony i opisy, ustawiaj limity i }, updatedAttendeeTracking: ({enabled}: {enabled: boolean}) => `śledzenie uczestników ${enabled ? 'włączone' : 'Wyłączone'}`, updateReimbursementEnabled: ({enabled}: UpdatedPolicyReimbursementEnabledParams) => `${enabled ? 'włączone' : 'wyłączone'} zwroty kosztów`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `dodano podatek „${taxName}”`, + updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `zmieniono niestandardową nazwę podatku na „${newName}" (poprzednio „${oldName}")`, + updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => + `zmienił domyślną stawkę podatku waluty w przestrzeni roboczej na „${newName}" (wcześniej „${oldName}")`, + updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => + `zmieniono domyślną stawkę podatku dla obcej waluty na „${newName}" (wcześniej „${oldName}")`, + addTax: ({taxName}: UpdatedPolicyTaxParams) => `dodano podatek „${taxName}"`, deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `usunął podatek „${taxName}”`, updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { if (!updatedField) { diff --git a/src/languages/pt-BR.ts b/src/languages/pt-BR.ts index 74ee00186045f..655e04d8f58a5 100644 --- a/src/languages/pt-BR.ts +++ b/src/languages/pt-BR.ts @@ -151,7 +151,9 @@ import type { UpdatedPolicyCategoryMaxExpenseAmountParams, UpdatedPolicyCategoryNameParams, UpdatedPolicyCategoryParams, + UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCurrencyParams, + UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitRateEnabledParams, UpdatedPolicyCustomUnitRateParams, UpdatedPolicyCustomUnitTaxClaimablePercentageParams, @@ -159,6 +161,7 @@ import type { UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, UpdatedPolicyFieldWithValueParam, + UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyPreventSelfApprovalParams, @@ -6516,6 +6519,11 @@ Exija detalhes de despesas como recibos e descrições, defina limites e padrõe : `alterou o fluxo de aprovação de ${approver} para interromper o encaminhamento de relatórios aprovados`, updatedAttendeeTracking: ({enabled}: {enabled: boolean}) => `Rastreamento de participante ${enabled ? 'ativado' : 'desativado'}`, updateReimbursementEnabled: ({enabled}: UpdatedPolicyReimbursementEnabledParams) => `${enabled ? 'ativado' : 'desativado'} reembolsos`, + updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `alterou o nome do imposto personalizado para "${newName}" (antes "${oldName}")`, + updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => + `alterou a taxa de imposto padrão da moeda do workspace para "${newName}" (anteriormente "${oldName}")`, + updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => + `alterou a alíquota de imposto padrão em moeda estrangeira para "${newName}" (anteriormente "${oldName}")`, addTax: ({taxName}: UpdatedPolicyTaxParams) => `adicionou o imposto "${taxName}"`, deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `removeu o imposto "${taxName}"`, updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index 80332e27b648a..d51cd5aa18e3f 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -151,7 +151,9 @@ import type { UpdatedPolicyCategoryMaxExpenseAmountParams, UpdatedPolicyCategoryNameParams, UpdatedPolicyCategoryParams, + UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCurrencyParams, + UpdatedPolicyCustomTaxNameParams, UpdatedPolicyCustomUnitRateEnabledParams, UpdatedPolicyCustomUnitRateParams, UpdatedPolicyCustomUnitTaxClaimablePercentageParams, @@ -159,6 +161,7 @@ import type { UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, UpdatedPolicyFieldWithValueParam, + UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, UpdatedPolicyPreventSelfApprovalParams, @@ -6373,7 +6376,10 @@ ${reportName} removedForwardsTo: ({approver, previousForwardsTo}: {approver: string; previousForwardsTo?: string}) => previousForwardsTo ? `已将 ${approver} 的审批流程更改为停止转发已批准的报销单(之前转发给 ${previousForwardsTo})` : `已将 ${approver} 的审批流程更改为不再转发已批准的报销单`, updateReimbursementEnabled: ({enabled}: UpdatedPolicyReimbursementEnabledParams) => `${enabled ? '已启用' : '已禁用'} 笔报销`, - addTax: ({taxName}: UpdatedPolicyTaxParams) => `已添加税费“${taxName}”`, + updateCustomTaxName: ({oldName, newName}: UpdatedPolicyCustomTaxNameParams) => `将自定义税种名称更改为"${newName}"(之前为"${oldName}")`, + updateCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyCurrencyDefaultTaxParams) => `将工作区货币的默认税率更改为"${newName}"(之前为"${oldName}")`, + updateForeignCurrencyDefaultTax: ({oldName, newName}: UpdatedPolicyForeignCurrencyDefaultTaxParams) => `将外币默认税率更改为"${newName}"(之前为"${oldName}")`, + addTax: ({taxName}: UpdatedPolicyTaxParams) => `已添加税费"${taxName}"`, deleteTax: ({taxName}: UpdatedPolicyTaxParams) => `已移除税费“${taxName}”`, updateTax: ({oldValue, taxName, updatedField, newValue}: UpdatedPolicyTaxParams) => { if (!updatedField) { diff --git a/src/libs/ReportActionsUtils.ts b/src/libs/ReportActionsUtils.ts index 9b8a90cabb567..5dc28268c2504 100644 --- a/src/libs/ReportActionsUtils.ts +++ b/src/libs/ReportActionsUtils.ts @@ -2637,6 +2637,36 @@ function getWorkspaceTaxUpdateMessage(translate: LocalizedTranslate, action: Rep return getReportActionText(action); } +function getCustomTaxNameUpdateMessage(translate: LocalizedTranslate, action: ReportAction): string { + const {oldName = '', newName} = getOriginalMessage(action as ReportAction) ?? {}; + + if (newName) { + return translate('workspaceActions.updateCustomTaxName', {oldName, newName}); + } + + return getReportActionText(action); +} + +function getCurrencyDefaultTaxUpdateMessage(translate: LocalizedTranslate, action: ReportAction): string { + const {oldName = '', newName} = getOriginalMessage(action as ReportAction) ?? {}; + + if (newName) { + return translate('workspaceActions.updateCurrencyDefaultTax', {oldName, newName}); + } + + return getReportActionText(action); +} + +function getForeignCurrencyDefaultTaxUpdateMessage(translate: LocalizedTranslate, action: ReportAction): string { + const {oldName = '', newName} = getOriginalMessage(action as ReportAction) ?? {}; + + if (newName) { + return translate('workspaceActions.updateForeignCurrencyDefaultTax', {oldName, newName}); + } + + return getReportActionText(action); +} + function getWorkspaceTagUpdateMessage(translate: LocalizedTranslate, action: ReportAction | undefined): string { const {tagListName, tagName, enabled, newName, newValue, oldName, oldValue, updatedField, count} = getOriginalMessage(action as ReportAction) ?? {}; @@ -3655,6 +3685,9 @@ export { getWorkspaceReimbursementUpdateMessage, getWorkspaceCurrencyUpdateMessage, getWorkspaceTaxUpdateMessage, + getCustomTaxNameUpdateMessage, + getCurrencyDefaultTaxUpdateMessage, + getForeignCurrencyDefaultTaxUpdateMessage, getWorkspaceFrequencyUpdateMessage, getPolicyChangeLogMaxExpenseAmountNoReceiptMessage, getPolicyChangeLogMaxExpenseAmountMessage, diff --git a/src/libs/SidebarUtils.ts b/src/libs/SidebarUtils.ts index 3f02595d2337b..e5c8c9ab4ce24 100644 --- a/src/libs/SidebarUtils.ts +++ b/src/libs/SidebarUtils.ts @@ -31,8 +31,11 @@ import { getAddedConnectionMessage, getCardIssuedMessage, getChangedApproverActionMessage, + getCurrencyDefaultTaxUpdateMessage, + getCustomTaxNameUpdateMessage, getDefaultApproverUpdateMessage, getDeletedApprovalRuleMessage, + getForeignCurrencyDefaultTaxUpdateMessage, getForwardsToUpdateMessage, getIntegrationSyncFailedMessage, getLastVisibleMessage, @@ -873,6 +876,12 @@ function getOptionData({ isActionOfType(lastAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_TAX) ) { result.alternateText = getWorkspaceTaxUpdateMessage(translate, lastAction); + } else if (isActionOfType(lastAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CUSTOM_TAX_NAME)) { + result.alternateText = getCustomTaxNameUpdateMessage(translate, lastAction); + } else if (isActionOfType(lastAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CURRENCY_DEFAULT_TAX)) { + result.alternateText = getCurrencyDefaultTaxUpdateMessage(translate, lastAction); + } else if (isActionOfType(lastAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX)) { + result.alternateText = getForeignCurrencyDefaultTaxUpdateMessage(translate, lastAction); } else if (isActionOfType(lastAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_TAG_LIST_NAME)) { result.alternateText = getCleanedTagName(getTagListNameUpdatedMessage(translate, lastAction) ?? ''); } else if (isTagModificationAction(lastAction?.actionName ?? '')) { diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx index a77eb69266930..e82c23ac80fee 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx @@ -30,11 +30,14 @@ import { getAddedConnectionMessage, getCardIssuedMessage, getChangedApproverActionMessage, + getCurrencyDefaultTaxUpdateMessage, + getCustomTaxNameUpdateMessage, getDefaultApproverUpdateMessage, getDeletedApprovalRuleMessage, getDismissedViolationMessageText, getDynamicExternalWorkflowRoutedMessage, getExportIntegrationMessageHTML, + getForeignCurrencyDefaultTaxUpdateMessage, getForwardsToUpdateMessage, getHarvestCreatedExpenseReportMessage, getIntegrationSyncFailedMessage, @@ -712,6 +715,12 @@ const ContextMenuActions: ContextMenuAction[] = [ reportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_TAX ) { Clipboard.setString(getWorkspaceTaxUpdateMessage(translate, reportAction)); + } else if (reportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CUSTOM_TAX_NAME) { + Clipboard.setString(getCustomTaxNameUpdateMessage(translate, reportAction)); + } else if (reportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CURRENCY_DEFAULT_TAX) { + Clipboard.setString(getCurrencyDefaultTaxUpdateMessage(translate, reportAction)); + } else if (reportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX) { + Clipboard.setString(getForeignCurrencyDefaultTaxUpdateMessage(translate, reportAction)); } else if (reportAction?.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_TAG_LIST_NAME) { Clipboard.setString(getCleanedTagName(getTagListNameUpdatedMessage(translate, reportAction))); } else if (isTagModificationAction(reportAction.actionName)) { diff --git a/src/pages/home/report/PureReportActionItem.tsx b/src/pages/home/report/PureReportActionItem.tsx index 5c0b8e8f89de1..cb7d2e627e06e 100644 --- a/src/pages/home/report/PureReportActionItem.tsx +++ b/src/pages/home/report/PureReportActionItem.tsx @@ -69,10 +69,13 @@ import { getAddedApprovalRuleMessage, getAddedConnectionMessage, getChangedApproverActionMessage, + getCurrencyDefaultTaxUpdateMessage, + getCustomTaxNameUpdateMessage, getDefaultApproverUpdateMessage, getDeletedApprovalRuleMessage, getDemotedFromWorkspaceMessage, getDismissedViolationMessageText, + getForeignCurrencyDefaultTaxUpdateMessage, getForwardsToUpdateMessage, getHarvestCreatedExpenseReportMessage, getIntegrationSyncFailedMessage, @@ -1422,6 +1425,12 @@ function PureReportActionItem({ action.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_TAX ) { children = ; + } else if (action.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CUSTOM_TAX_NAME) { + children = ; + } else if (action.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CURRENCY_DEFAULT_TAX) { + children = ; + } else if (action.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX) { + children = ; } else if (action.actionName === CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_TAG_LIST_NAME) { children = ; } else if (isTagModificationAction(action.actionName)) { From e9820c69d944d14427236be878158f5399506657 Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Mon, 19 Jan 2026 11:20:15 +0100 Subject: [PATCH 2/9] prettier --- src/libs/SidebarUtils.ts | 4 ++-- src/pages/home/report/ContextMenu/ContextMenuActions.tsx | 4 ++-- src/pages/home/report/PureReportActionItem.tsx | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/libs/SidebarUtils.ts b/src/libs/SidebarUtils.ts index 201e22a18f52e..05c01479d2c82 100644 --- a/src/libs/SidebarUtils.ts +++ b/src/libs/SidebarUtils.ts @@ -31,10 +31,10 @@ import { getAddedConnectionMessage, getCardIssuedMessage, getChangedApproverActionMessage, - getCurrencyDefaultTaxUpdateMessage, - getCustomTaxNameUpdateMessage, getCompanyAddressUpdateMessage, getCompanyCardConnectionBrokenMessage, + getCurrencyDefaultTaxUpdateMessage, + getCustomTaxNameUpdateMessage, getDefaultApproverUpdateMessage, getDeletedApprovalRuleMessage, getForeignCurrencyDefaultTaxUpdateMessage, diff --git a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx index 02de623b859e8..8dd15d761eccc 100644 --- a/src/pages/home/report/ContextMenu/ContextMenuActions.tsx +++ b/src/pages/home/report/ContextMenu/ContextMenuActions.tsx @@ -31,11 +31,11 @@ import { getAddedConnectionMessage, getCardIssuedMessage, getChangedApproverActionMessage, - getCurrencyDefaultTaxUpdateMessage, - getCustomTaxNameUpdateMessage, getCompanyAddressUpdateMessage, getCompanyCardConnectionBrokenMessage, getCreatedReportForUnapprovedTransactionsMessage, + getCurrencyDefaultTaxUpdateMessage, + getCustomTaxNameUpdateMessage, getDefaultApproverUpdateMessage, getDeletedApprovalRuleMessage, getDismissedViolationMessageText, diff --git a/src/pages/home/report/PureReportActionItem.tsx b/src/pages/home/report/PureReportActionItem.tsx index aff7f73560f58..17f104a210cfb 100644 --- a/src/pages/home/report/PureReportActionItem.tsx +++ b/src/pages/home/report/PureReportActionItem.tsx @@ -70,11 +70,11 @@ import { getAddedApprovalRuleMessage, getAddedConnectionMessage, getChangedApproverActionMessage, - getCurrencyDefaultTaxUpdateMessage, - getCustomTaxNameUpdateMessage, getCompanyAddressUpdateMessage, getCompanyCardConnectionBrokenMessage, getCreatedReportForUnapprovedTransactionsMessage, + getCurrencyDefaultTaxUpdateMessage, + getCustomTaxNameUpdateMessage, getDefaultApproverUpdateMessage, getDeletedApprovalRuleMessage, getDemotedFromWorkspaceMessage, From f181d7f7ea591ac62110747b2fc3bbbfe396939d Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Tue, 27 Jan 2026 01:42:22 +0100 Subject: [PATCH 3/9] Ensure full handling of tax updates report actions types --- src/libs/OptionsListUtils/index.ts | 20 ++++++++++++++++++++ src/libs/ReportNameUtils.ts | 24 ++++++++++++++++++++++++ src/libs/ReportUtils.ts | 18 ++++++++++++++++++ 3 files changed, 62 insertions(+) diff --git a/src/libs/OptionsListUtils/index.ts b/src/libs/OptionsListUtils/index.ts index 502b92e623fce..f333d56a052d7 100644 --- a/src/libs/OptionsListUtils/index.ts +++ b/src/libs/OptionsListUtils/index.ts @@ -37,8 +37,11 @@ import { getActionableMentionWhisperMessage, getChangedApproverActionMessage, getCombinedReportActions, + getCurrencyDefaultTaxUpdateMessage, + getCustomTaxNameUpdateMessage, getDynamicExternalWorkflowRoutedMessage, getExportIntegrationLastMessageText, + getForeignCurrencyDefaultTaxUpdateMessage, getInvoiceCompanyNameUpdateMessage, getInvoiceCompanyWebsiteUpdateMessage, getIOUReportIDFromReportActionPreview, @@ -61,6 +64,7 @@ import { getTravelUpdateMessage, getUpdateACHAccountMessage, getUpdateRoomDescriptionMessage, + getWorkspaceTaxUpdateMessage, hasPendingDEWSubmit, isActionableAddPaymentCard, isActionableJoinRequest, @@ -801,6 +805,22 @@ function getLastMessageTextForReport({ if (isActionOfType(lastReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_INVOICE_COMPANY_WEBSITE)) { lastMessageTextFromReport = getInvoiceCompanyWebsiteUpdateMessage(translate, lastReportAction); } + if ( + isActionOfType(lastReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.ADD_TAX) || + isActionOfType(lastReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.DELETE_TAX) || + isActionOfType(lastReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_TAX) + ) { + lastMessageTextFromReport = getWorkspaceTaxUpdateMessage(translate, lastReportAction); + } + if (isActionOfType(lastReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CUSTOM_TAX_NAME)) { + lastMessageTextFromReport = getCustomTaxNameUpdateMessage(translate, lastReportAction); + } + if (isActionOfType(lastReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CURRENCY_DEFAULT_TAX)) { + lastMessageTextFromReport = getCurrencyDefaultTaxUpdateMessage(translate, lastReportAction); + } + if (isActionOfType(lastReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX)) { + lastMessageTextFromReport = getForeignCurrencyDefaultTaxUpdateMessage(translate, 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 197ff307273a2..1c4454dec1774 100644 --- a/src/libs/ReportNameUtils.ts +++ b/src/libs/ReportNameUtils.ts @@ -35,6 +35,9 @@ import { getCardIssuedMessage, getChangedApproverActionMessage, getCompanyCardConnectionBrokenMessage, + getCurrencyDefaultTaxUpdateMessage, + getCustomTaxNameUpdateMessage, + getForeignCurrencyDefaultTaxUpdateMessage, getIntegrationSyncFailedMessage, getInvoiceCompanyNameUpdateMessage, getInvoiceCompanyWebsiteUpdateMessage, @@ -63,6 +66,7 @@ import { getWorkspaceReportFieldDeleteMessage, getWorkspaceReportFieldUpdateMessage, getWorkspaceTagUpdateMessage, + getWorkspaceTaxUpdateMessage, getWorkspaceUpdateFieldMessage, isActionableJoinRequest, isActionOfType, @@ -462,6 +466,26 @@ function computeReportNameBasedOnReportAction( return getInvoiceCompanyWebsiteUpdateMessage(translate, parentReportAction); } + if ( + isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.ADD_TAX) || + isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.DELETE_TAX) || + isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_TAX) + ) { + return getWorkspaceTaxUpdateMessage(translate, parentReportAction); + } + + if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CUSTOM_TAX_NAME)) { + return getCustomTaxNameUpdateMessage(translate, parentReportAction); + } + + if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CURRENCY_DEFAULT_TAX)) { + return getCurrencyDefaultTaxUpdateMessage(translate, parentReportAction); + } + + if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX)) { + return getForeignCurrencyDefaultTaxUpdateMessage(translate, parentReportAction); + } + if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.ACTIONABLE_CARD_FRAUD_ALERT) && getOriginalMessage(parentReportAction)?.resolution) { return getActionableCardFraudAlertResolutionMessage(translate, parentReportAction); } diff --git a/src/libs/ReportUtils.ts b/src/libs/ReportUtils.ts index fcc189d779cba..2706d86ff68ce 100644 --- a/src/libs/ReportUtils.ts +++ b/src/libs/ReportUtils.ts @@ -180,9 +180,12 @@ import { getCompanyAddressUpdateMessage, getCompanyCardConnectionBrokenMessage, getCreatedReportForUnapprovedTransactionsMessage, + getCurrencyDefaultTaxUpdateMessage, + getCustomTaxNameUpdateMessage, getDefaultApproverUpdateMessage, getDismissedViolationMessageText, getExportIntegrationLastMessageText, + getForeignCurrencyDefaultTaxUpdateMessage, getForwardsToUpdateMessage, getIntegrationSyncFailedMessage, getInvoiceCompanyNameUpdateMessage, @@ -5810,6 +5813,21 @@ function getReportName( return getWorkspaceTaxUpdateMessage(translateLocal, parentReportAction); } + if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CUSTOM_TAX_NAME)) { + // eslint-disable-next-line @typescript-eslint/no-deprecated + return getCustomTaxNameUpdateMessage(translateLocal, parentReportAction); + } + + if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CURRENCY_DEFAULT_TAX)) { + // eslint-disable-next-line @typescript-eslint/no-deprecated + return getCurrencyDefaultTaxUpdateMessage(translateLocal, parentReportAction); + } + + if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX)) { + // eslint-disable-next-line @typescript-eslint/no-deprecated + return getForeignCurrencyDefaultTaxUpdateMessage(translateLocal, parentReportAction); + } + if (isActionOfType(parentReportAction, CONST.REPORT.ACTIONS.TYPE.DISMISSED_VIOLATION)) { // eslint-disable-next-line @typescript-eslint/no-deprecated return getDismissedViolationMessageText(translateLocal, getOriginalMessage(parentReportAction)); From 3a0400387c4c672a5c65a224d75e941291c7b4e4 Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Tue, 27 Jan 2026 01:48:59 +0100 Subject: [PATCH 4/9] add unit tests --- tests/unit/ReportActionsUtilsTest.ts | 69 ++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/tests/unit/ReportActionsUtilsTest.ts b/tests/unit/ReportActionsUtilsTest.ts index ce88db33d2235..b8ae8888a5664 100644 --- a/tests/unit/ReportActionsUtilsTest.ts +++ b/tests/unit/ReportActionsUtilsTest.ts @@ -14,6 +14,9 @@ import { getCardIssuedMessage, getCompanyAddressUpdateMessage, getCreatedReportForUnapprovedTransactionsMessage, + getCurrencyDefaultTaxUpdateMessage, + getCustomTaxNameUpdateMessage, + getForeignCurrencyDefaultTaxUpdateMessage, getInvoiceCompanyNameUpdateMessage, getInvoiceCompanyWebsiteUpdateMessage, getOneTransactionThreadReportID, @@ -3011,4 +3014,70 @@ describe('ReportActionsUtils', () => { expect(result).toBe('set the invoice company website to "https://newwebsite.com"'); }); }); + + describe('getCustomTaxNameUpdateMessage', () => { + it('should return the correct message when updating custom tax name', () => { + // Given an UPDATE_CUSTOM_TAX_NAME action with old and new names + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CUSTOM_TAX_NAME, + reportActionID: '1', + created: '', + originalMessage: { + oldName: 'Sales Tax', + newName: 'VAT', + }, + message: [], + } as ReportAction; + + // When getting the update message + const result = getCustomTaxNameUpdateMessage(translateLocal, action); + + // Then it should return the correct message with old and new names + expect(result).toBe('changed the custom tax name to "VAT" (previously "Sales Tax")'); + }); + }); + + describe('getCurrencyDefaultTaxUpdateMessage', () => { + it('should return the correct message when updating workspace currency default tax', () => { + // Given an UPDATE_CURRENCY_DEFAULT_TAX action with old and new names + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CURRENCY_DEFAULT_TAX, + reportActionID: '1', + created: '', + originalMessage: { + oldName: 'Standard Rate', + newName: 'Reduced Rate', + }, + message: [], + } as ReportAction; + + // When getting the update message + const result = getCurrencyDefaultTaxUpdateMessage(translateLocal, action); + + // Then it should return the correct message with old and new names + expect(result).toBe('changed the workspace currency default tax rate to "Reduced Rate" (previously "Standard Rate")'); + }); + }); + + describe('getForeignCurrencyDefaultTaxUpdateMessage', () => { + it('should return the correct message when updating foreign currency default tax', () => { + // Given an UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX action with old and new names + const action = { + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX, + reportActionID: '1', + created: '', + originalMessage: { + oldName: 'Foreign Tax (15%)', + newName: 'Foreign Tax (10%)', + }, + message: [], + } as ReportAction; + + // When getting the update message + const result = getForeignCurrencyDefaultTaxUpdateMessage(translateLocal, action); + + // Then it should return the correct message with old and new names + expect(result).toBe('changed the foreign currency default tax rate to "Foreign Tax (10%)" (previously "Foreign Tax (15%)")'); + }); + }); }); From ad009434f9dc17636e2aa2b47a700a93d3bd82f0 Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Tue, 10 Feb 2026 18:05:05 +0100 Subject: [PATCH 5/9] fix conflicts --- src/languages/de.ts | 1 + src/languages/en.ts | 1 + src/languages/fr.ts | 1 + 3 files changed, 3 insertions(+) diff --git a/src/languages/de.ts b/src/languages/de.ts index c9c7982f58a7b..738fccc47da21 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -132,6 +132,7 @@ import type { UpdatedPolicyDefaultTitleParams, UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, + UpdatedPolicyFieldWithValueParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, diff --git a/src/languages/en.ts b/src/languages/en.ts index c3bce0807e3a9..8e7d32f648a1c 100644 --- a/src/languages/en.ts +++ b/src/languages/en.ts @@ -120,6 +120,7 @@ import type { UpdatedPolicyDefaultTitleParams, UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, + UpdatedPolicyFieldWithValueParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, diff --git a/src/languages/fr.ts b/src/languages/fr.ts index ca7f59f55801e..d3b4b6f562b21 100644 --- a/src/languages/fr.ts +++ b/src/languages/fr.ts @@ -132,6 +132,7 @@ import type { UpdatedPolicyDefaultTitleParams, UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, + UpdatedPolicyFieldWithValueParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, From 236d478ecff0d0c891eb11e65e63b4032cb8e5e3 Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Tue, 10 Feb 2026 18:15:10 +0100 Subject: [PATCH 6/9] fix conflicts --- src/languages/zh-hans.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/languages/zh-hans.ts b/src/languages/zh-hans.ts index c3457b3b4a6cb..e3b65cdd4e55e 100644 --- a/src/languages/zh-hans.ts +++ b/src/languages/zh-hans.ts @@ -132,6 +132,7 @@ import type { UpdatedPolicyDefaultTitleParams, UpdatedPolicyDescriptionParams, UpdatedPolicyFieldWithNewAndOldValueParams, + UpdatedPolicyFieldWithValueParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyFrequencyParams, UpdatedPolicyManualApprovalThresholdParams, From c2f31d30ab7b9e73e05eb69bc73be1c51f36ee1e Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Tue, 17 Feb 2026 00:15:12 +0100 Subject: [PATCH 7/9] add more automated tests --- tests/ui/PureReportActionItemTest.tsx | 27 ++++++ tests/unit/OptionsListUtilsTest.tsx | 65 ++++++++++++++- tests/unit/ReportUtilsTest.ts | 75 +++++++++++++++++ tests/unit/SidebarUtilsTest.ts | 114 ++++++++++++++++++++++++++ 4 files changed, 280 insertions(+), 1 deletion(-) diff --git a/tests/ui/PureReportActionItemTest.tsx b/tests/ui/PureReportActionItemTest.tsx index a0817bebef361..698da57a5e217 100644 --- a/tests/ui/PureReportActionItemTest.tsx +++ b/tests/ui/PureReportActionItemTest.tsx @@ -239,6 +239,33 @@ describe('PureReportActionItem', () => { expect(screen.getByText(actorEmail)).toBeOnTheScreen(); expect(screen.getByText(Parser.htmlToText(translateLocal('workspaceActions.forcedCorporateUpgrade')))).toBeOnTheScreen(); }); + + it('UPDATE_CUSTOM_TAX_NAME action', async () => { + const action = createReportAction(CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CUSTOM_TAX_NAME, {oldName: 'Sales Tax', newName: 'VAT'}); + renderItemWithAction(action); + await waitForBatchedUpdatesWithAct(); + + expect(screen.getByText(actorEmail)).toBeOnTheScreen(); + expect(screen.getByText('changed the custom tax name to "VAT" (previously "Sales Tax")')).toBeOnTheScreen(); + }); + + it('UPDATE_CURRENCY_DEFAULT_TAX action', async () => { + const action = createReportAction(CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CURRENCY_DEFAULT_TAX, {oldName: 'Standard Rate', newName: 'Reduced Rate'}); + renderItemWithAction(action); + await waitForBatchedUpdatesWithAct(); + + expect(screen.getByText(actorEmail)).toBeOnTheScreen(); + expect(screen.getByText('changed the workspace currency default tax rate to "Reduced Rate" (previously "Standard Rate")')).toBeOnTheScreen(); + }); + + it('UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX action', async () => { + const action = createReportAction(CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX, {oldName: 'Foreign Tax (15%)', newName: 'Foreign Tax (10%)'}); + renderItemWithAction(action); + await waitForBatchedUpdatesWithAct(); + + expect(screen.getByText(actorEmail)).toBeOnTheScreen(); + expect(screen.getByText('changed the foreign currency default tax rate to "Foreign Tax (10%)" (previously "Foreign Tax (15%)")')).toBeOnTheScreen(); + }); }); describe('DEW (Dynamic External Workflow) actions', () => { diff --git a/tests/unit/OptionsListUtilsTest.tsx b/tests/unit/OptionsListUtilsTest.tsx index 26e65cd17597f..4684dcef34454 100644 --- a/tests/unit/OptionsListUtilsTest.tsx +++ b/tests/unit/OptionsListUtilsTest.tsx @@ -45,7 +45,13 @@ import { sortAlphabetically, } from '@libs/OptionsListUtils'; import Parser from '@libs/Parser'; -import {getChangedApproverActionMessage, getDynamicExternalWorkflowRoutedMessage} from '@libs/ReportActionsUtils'; +import { + getChangedApproverActionMessage, + getCurrencyDefaultTaxUpdateMessage, + getCustomTaxNameUpdateMessage, + getDynamicExternalWorkflowRoutedMessage, + getForeignCurrencyDefaultTaxUpdateMessage, +} from '@libs/ReportActionsUtils'; import { canCreateTaskInReport, canUserPerformWriteAction, @@ -4262,6 +4268,63 @@ describe('OptionsListUtils', () => { expect(lastMessage).toBe(Parser.htmlToText(translate(CONST.LOCALES.EN, 'workspaceActions.forcedCorporateUpgrade'))); }); }); + it('UPDATE_CUSTOM_TAX_NAME action', async () => { + const report: Report = createRandomReport(0, undefined); + const action: ReportAction = { + ...createRandomReportAction(1), + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CUSTOM_TAX_NAME, + message: [{type: 'COMMENT', text: ''}], + originalMessage: {oldName: 'Sales Tax', newName: 'VAT'}, + }; + await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report.reportID}`, { + [action.reportActionID]: action, + }); + const lastMessage = getLastMessageTextForReport({ + translate: translateLocal, + report, + lastActorDetails: null, + isReportArchived: false, + }); + expect(lastMessage).toBe(getCustomTaxNameUpdateMessage(translateLocal, action)); + }); + it('UPDATE_CURRENCY_DEFAULT_TAX action', async () => { + const report: Report = createRandomReport(0, undefined); + const action: ReportAction = { + ...createRandomReportAction(1), + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CURRENCY_DEFAULT_TAX, + message: [{type: 'COMMENT', text: ''}], + originalMessage: {oldName: 'Standard Rate', newName: 'Reduced Rate'}, + }; + await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report.reportID}`, { + [action.reportActionID]: action, + }); + const lastMessage = getLastMessageTextForReport({ + translate: translateLocal, + report, + lastActorDetails: null, + isReportArchived: false, + }); + expect(lastMessage).toBe(getCurrencyDefaultTaxUpdateMessage(translateLocal, action)); + }); + it('UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX action', async () => { + const report: Report = createRandomReport(0, undefined); + const action: ReportAction = { + ...createRandomReportAction(1), + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX, + message: [{type: 'COMMENT', text: ''}], + originalMessage: {oldName: 'Foreign Tax (15%)', newName: 'Foreign Tax (10%)'}, + }; + await Onyx.merge(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report.reportID}`, { + [action.reportActionID]: action, + }); + const lastMessage = getLastMessageTextForReport({ + translate: translateLocal, + report, + lastActorDetails: null, + isReportArchived: false, + }); + expect(lastMessage).toBe(getForeignCurrencyDefaultTaxUpdateMessage(translateLocal, action)); + }); it('TAKE_CONTROL action', async () => { const report: Report = createRandomReport(0, undefined); const takeControlAction: ReportAction = { diff --git a/tests/unit/ReportUtilsTest.ts b/tests/unit/ReportUtilsTest.ts index 096acb711dfbf..2acd74a41f65f 100644 --- a/tests/unit/ReportUtilsTest.ts +++ b/tests/unit/ReportUtilsTest.ts @@ -1828,6 +1828,81 @@ describe('ReportUtils', () => { expect(reportName).toBe('updated the name of this workspace to "New Workspace" (previously "Old Workspace")'); }); + test('should handle add tax action', () => { + const action: ReportAction = { + ...baseParentReportAction, + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.ADD_TAX, + originalMessage: {taxName: 'Sales Tax (10%)'}, + }; + + const reportActions = { + [`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report.parentReportID}`]: {[action.reportActionID]: action}, + }; + const reportName = computeReportName(report, undefined, undefined, undefined, undefined, participantsPersonalDetails, reportActions); + + expect(reportName).toBe('added the tax "Sales Tax (10%)"'); + }); + + test('should handle delete tax action', () => { + const action: ReportAction = { + ...baseParentReportAction, + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.DELETE_TAX, + originalMessage: {taxName: 'Old Tax (5%)'}, + }; + + const reportActions = { + [`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report.parentReportID}`]: {[action.reportActionID]: action}, + }; + const reportName = computeReportName(report, undefined, undefined, undefined, undefined, participantsPersonalDetails, reportActions); + + expect(reportName).toBe('removed the tax "Old Tax (5%)"'); + }); + + test('should handle custom tax name update action', () => { + const action: ReportAction = { + ...baseParentReportAction, + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CUSTOM_TAX_NAME, + originalMessage: {oldName: 'Sales Tax', newName: 'VAT'}, + }; + + const reportActions = { + [`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report.parentReportID}`]: {[action.reportActionID]: action}, + }; + const reportName = computeReportName(report, undefined, undefined, undefined, undefined, participantsPersonalDetails, reportActions); + + expect(reportName).toBe('changed the custom tax name to "VAT" (previously "Sales Tax")'); + }); + + test('should handle currency default tax update action', () => { + const action: ReportAction = { + ...baseParentReportAction, + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CURRENCY_DEFAULT_TAX, + originalMessage: {oldName: 'Standard Rate', newName: 'Reduced Rate'}, + }; + + const reportActions = { + [`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report.parentReportID}`]: {[action.reportActionID]: action}, + }; + const reportName = computeReportName(report, undefined, undefined, undefined, undefined, participantsPersonalDetails, reportActions); + + expect(reportName).toBe('changed the workspace currency default tax rate to "Reduced Rate" (previously "Standard Rate")'); + }); + + test('should handle foreign currency default tax update action', () => { + const action: ReportAction = { + ...baseParentReportAction, + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX, + originalMessage: {oldName: 'Foreign Tax (15%)', newName: 'Foreign Tax (10%)'}, + }; + + const reportActions = { + [`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report.parentReportID}`]: {[action.reportActionID]: action}, + }; + const reportName = computeReportName(report, undefined, undefined, undefined, undefined, participantsPersonalDetails, reportActions); + + expect(reportName).toBe('changed the foreign currency default tax rate to "Foreign Tax (10%)" (previously "Foreign Tax (15%)")'); + }); + test('should handle corporate force upgrade action', () => { const forceUpgradeAction: ReportAction = { ...baseParentReportAction, diff --git a/tests/unit/SidebarUtilsTest.ts b/tests/unit/SidebarUtilsTest.ts index 04c9a03ffaa95..96f9c74fc4a45 100644 --- a/tests/unit/SidebarUtilsTest.ts +++ b/tests/unit/SidebarUtilsTest.ts @@ -1411,6 +1411,120 @@ describe('SidebarUtils', () => { expect(result?.alternateText).toBe(`${getReportActionMessageText(lastAction)}`); }); + it('returns the correct alternate text for UPDATE_CUSTOM_TAX_NAME action', async () => { + const report: Report = { + ...createRandomReport(4, 'policyAdmins'), + participants: {'18921695': {notificationPreference: 'always'}}, + }; + const lastAction: ReportAction = { + ...createRandomReportAction(2), + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CUSTOM_TAX_NAME, + originalMessage: {oldName: 'Sales Tax', newName: 'VAT'}, + }; + const reportActions: ReportActions = {[lastAction.reportActionID]: lastAction}; + await act(async () => { + await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT}${report.reportID}`, report); + await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report.reportID}`, reportActions); + }); + + const result = SidebarUtils.getOptionData({ + report, + reportAttributes: undefined, + reportNameValuePairs: {}, + personalDetails: {}, + policy: undefined, + invoiceReceiverPolicy: undefined, + parentReportAction: undefined, + oneTransactionThreadReport: undefined, + card: undefined, + translate: translateLocal, + localeCompare, + lastAction, + lastActionReport: undefined, + isReportArchived: undefined, + currentUserAccountID: 0, + reportAttributesDerived: undefined, + }); + + expect(result?.alternateText).toBe('changed the custom tax name to "VAT" (previously "Sales Tax")'); + }); + + it('returns the correct alternate text for UPDATE_CURRENCY_DEFAULT_TAX action', async () => { + const report: Report = { + ...createRandomReport(4, 'policyAdmins'), + participants: {'18921695': {notificationPreference: 'always'}}, + }; + const lastAction: ReportAction = { + ...createRandomReportAction(2), + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_CURRENCY_DEFAULT_TAX, + originalMessage: {oldName: 'Standard Rate', newName: 'Reduced Rate'}, + }; + const reportActions: ReportActions = {[lastAction.reportActionID]: lastAction}; + await act(async () => { + await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT}${report.reportID}`, report); + await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report.reportID}`, reportActions); + }); + + const result = SidebarUtils.getOptionData({ + report, + reportAttributes: undefined, + reportNameValuePairs: {}, + personalDetails: {}, + policy: undefined, + invoiceReceiverPolicy: undefined, + parentReportAction: undefined, + oneTransactionThreadReport: undefined, + card: undefined, + translate: translateLocal, + localeCompare, + lastAction, + lastActionReport: undefined, + isReportArchived: undefined, + currentUserAccountID: 0, + reportAttributesDerived: undefined, + }); + + expect(result?.alternateText).toBe('changed the workspace currency default tax rate to "Reduced Rate" (previously "Standard Rate")'); + }); + + it('returns the correct alternate text for UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX action', async () => { + const report: Report = { + ...createRandomReport(4, 'policyAdmins'), + participants: {'18921695': {notificationPreference: 'always'}}, + }; + const lastAction: ReportAction = { + ...createRandomReportAction(2), + actionName: CONST.REPORT.ACTIONS.TYPE.POLICY_CHANGE_LOG.UPDATE_FOREIGN_CURRENCY_DEFAULT_TAX, + originalMessage: {oldName: 'Foreign Tax (15%)', newName: 'Foreign Tax (10%)'}, + }; + const reportActions: ReportActions = {[lastAction.reportActionID]: lastAction}; + await act(async () => { + await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT}${report.reportID}`, report); + await Onyx.set(`${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${report.reportID}`, reportActions); + }); + + const result = SidebarUtils.getOptionData({ + report, + reportAttributes: undefined, + reportNameValuePairs: {}, + personalDetails: {}, + policy: undefined, + invoiceReceiverPolicy: undefined, + parentReportAction: undefined, + oneTransactionThreadReport: undefined, + card: undefined, + translate: translateLocal, + localeCompare, + lastAction, + lastActionReport: undefined, + isReportArchived: undefined, + currentUserAccountID: 0, + reportAttributesDerived: undefined, + }); + + expect(result?.alternateText).toBe('changed the foreign currency default tax rate to "Foreign Tax (10%)" (previously "Foreign Tax (15%)")'); + }); + it('returns @Hidden as an alternate text if the last action mentioned account has no name', async () => { // When a report has last action with mention of an account that has no name const report: Report = { From ace3910f26a8169f88ddf256344f3ca6673c08a4 Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Fri, 20 Feb 2026 17:48:19 +0100 Subject: [PATCH 8/9] conflicts --- src/languages/de.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/languages/de.ts b/src/languages/de.ts index 610443cfb8802..7aed291a430ff 100644 --- a/src/languages/de.ts +++ b/src/languages/de.ts @@ -78,10 +78,10 @@ import type { UpdatedPolicyTagListParams, UpdatedPolicyCurrencyDefaultTaxParams, UpdatedPolicyCustomTaxNameParams, - UpdatedPolicyTagParams, UpdatedPolicyForeignCurrencyDefaultTaxParams, UpdatedPolicyTagListRequiredParams, UpdatedPolicyTagNameParams, + UpdatedPolicyTagParams, UpdatedPolicyTaxParams, UpdatedPolicyTimeEnabledParams, UpdatedPolicyTimeRateParams, From 720a0574aecdbe93f8694b08935ac5a988bf9252 Mon Sep 17 00:00:00 2001 From: Rayane <77965000+rayane-d@users.noreply.github.com> Date: Fri, 20 Feb 2026 17:57:40 +0100 Subject: [PATCH 9/9] fix test --- tests/unit/SidebarUtilsTest.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/unit/SidebarUtilsTest.ts b/tests/unit/SidebarUtilsTest.ts index 80bb856ce65fe..c5da1169a3bf2 100644 --- a/tests/unit/SidebarUtilsTest.ts +++ b/tests/unit/SidebarUtilsTest.ts @@ -1439,6 +1439,7 @@ describe('SidebarUtils', () => { policy: undefined, invoiceReceiverPolicy: undefined, parentReportAction: undefined, + conciergeReportID: '', oneTransactionThreadReport: undefined, card: undefined, translate: translateLocal, @@ -1477,6 +1478,7 @@ describe('SidebarUtils', () => { policy: undefined, invoiceReceiverPolicy: undefined, parentReportAction: undefined, + conciergeReportID: '', oneTransactionThreadReport: undefined, card: undefined, translate: translateLocal, @@ -1515,6 +1517,7 @@ describe('SidebarUtils', () => { policy: undefined, invoiceReceiverPolicy: undefined, parentReportAction: undefined, + conciergeReportID: '', oneTransactionThreadReport: undefined, card: undefined, translate: translateLocal,