diff --git a/frontend/src/components/dashboard/PlanWarningCard.test.tsx b/frontend/src/components/dashboard/PlanWarningCard.test.tsx index 24fa144..57d78ea 100644 --- a/frontend/src/components/dashboard/PlanWarningCard.test.tsx +++ b/frontend/src/components/dashboard/PlanWarningCard.test.tsx @@ -69,8 +69,8 @@ describe('PlanWarningCard', () => { />, ) const warning = screen.getByTestId('dashboard-plan-warning-2') - expect(warning).toHaveTextContent('Semesterdagar riskerar att gå förlorade') - expect(warning).toHaveTextContent('4 semesterdagar riskerar att gå förlorade 2027') + expect(warning).toHaveTextContent('Semesterdagar riskerar att gå förlorade 2027') + expect(warning).toHaveTextContent('Sam riskerar att förlora 4 semesterdagar om inget görs') }) it('falls back to the raw kind and messageKey for an unrecognised warning', () => { diff --git a/frontend/src/components/dashboard/PlanWarningCard.tsx b/frontend/src/components/dashboard/PlanWarningCard.tsx index 37f1742..ebb1d7b 100644 --- a/frontend/src/components/dashboard/PlanWarningCard.tsx +++ b/frontend/src/components/dashboard/PlanWarningCard.tsx @@ -54,21 +54,24 @@ export function PlanWarningCard({ warning, nameFor, index }: PlanWarningCardProp const { t, locale } = useTranslation() const titleKey = PLAN_WARNING_TITLE_KEYS[warning.kind] const bodyKey = PLAN_WARNING_BODY_KEYS[warning.messageKey] - const title = titleKey ? t(titleKey) : warning.kind + + // Construct params for title and body interpolation + const params = toTranslationParams(warning.data) + const uuid = warning.data.parent_personal_data_uuid + if (typeof uuid === 'string') { + params.parent_name = nameFor(uuid) + } + for (const field of DATE_FIELDS_BY_KIND[warning.kind] ?? []) { + const raw = warning.data[field] + if (typeof raw === 'string') { + params[field] = formatDateForDisplay(raw, locale) + } + } + + const title = titleKey ? t(titleKey, params) : warning.kind let body = warning.messageKey if (bodyKey) { - const params = toTranslationParams(warning.data) - const uuid = warning.data.parent_personal_data_uuid - if (typeof uuid === 'string') { - params.parent_name = nameFor(uuid) - } - for (const field of DATE_FIELDS_BY_KIND[warning.kind] ?? []) { - const raw = warning.data[field] - if (typeof raw === 'string') { - params[field] = formatDateForDisplay(raw, locale) - } - } body = t(bodyKey, params) } diff --git a/frontend/src/i18n/en/plan.ts b/frontend/src/i18n/en/plan.ts index baa125d..554eb53 100644 --- a/frontend/src/i18n/en/plan.ts +++ b/frontend/src/i18n/en/plan.ts @@ -40,6 +40,6 @@ export const plan = { 'planWarnings.sgi_risk': '{parent_name} is planned for only {days_planned} of the required {min_days_per_week} leave days in the week starting {week_start} — this can lower their sickness-benefit-qualifying income (SGI).', 'planWarnings.daysLostAtAge4Title': 'Days at risk at the 4th birthday', 'planWarnings.days_lost_at_age_4': '{parent_name} risks losing {expiring_days} parental-benefit {expiring_days|day|days} at the child\'s 4th birthday ({fourth_birthday}) — {projected_left_at_b4} {projected_left_at_b4|day|days} are projected to remain in total then.', - 'planWarnings.vacationExpiringTitle': 'Vacation days at risk', - 'planWarnings.vacation_expiring': '{expiring_days} vacation {expiring_days|day|days} at risk of being lost in {year} unless something is done.', + 'planWarnings.vacationExpiringTitle': 'Vacation days at risk of being lost in {year}', + 'planWarnings.vacation_expiring': '{parent_name} risks losing {expiring_days} vacation {expiring_days|day|days} unless something is done.', } as const diff --git a/frontend/src/i18n/sv/plan.ts b/frontend/src/i18n/sv/plan.ts index ae90654..f2019cf 100644 --- a/frontend/src/i18n/sv/plan.ts +++ b/frontend/src/i18n/sv/plan.ts @@ -40,6 +40,6 @@ export const plan = { 'planWarnings.sgi_risk': '{parent_name} är planerad för endast {days_planned} av minst {min_days_per_week} ledighetsdagar veckan som börjar {week_start} — det kan sänka den sjukpenninggrundande inkomsten (SGI).', 'planWarnings.daysLostAtAge4Title': 'Dagar riskerar att gå förlorade vid 4 år', 'planWarnings.days_lost_at_age_4': '{parent_name} riskerar att förlora {expiring_days} {expiring_days|föräldrapenningdag|föräldrapenningdagar} vid barnets 4-årsdag ({fourth_birthday}) — {projected_left_at_b4} {projected_left_at_b4|dag|dagar} beräknas då finnas kvar totalt.', - 'planWarnings.vacationExpiringTitle': 'Semesterdagar riskerar att gå förlorade', - 'planWarnings.vacation_expiring': '{expiring_days} {expiring_days|semesterdag|semesterdagar} riskerar att gå förlorade {year} om inget görs.', + 'planWarnings.vacationExpiringTitle': 'Semesterdagar riskerar att gå förlorade {year}', + 'planWarnings.vacation_expiring': '{parent_name} riskerar att förlora {expiring_days} {expiring_days|semesterdag|semesterdagar} om inget görs.', } as const