Name the parent and year in vacation-expiry warnings

Several vacation_expiring warnings rendered with an identical title and a
body without the parent, so two warnings for the same year read as
duplicates. The backend already sends parent_personal_data_uuid; the
strings just never used it.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-20 13:17:16 +02:00
parent 61e5487078
commit 74ddfcd440
4 changed files with 21 additions and 18 deletions
@@ -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', () => {
@@ -54,10 +54,8 @@ 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
let body = warning.messageKey
if (bodyKey) {
// Construct params for title and body interpolation
const params = toTranslationParams(warning.data)
const uuid = warning.data.parent_personal_data_uuid
if (typeof uuid === 'string') {
@@ -69,6 +67,11 @@ export function PlanWarningCard({ warning, nameFor, index }: PlanWarningCardProp
params[field] = formatDateForDisplay(raw, locale)
}
}
const title = titleKey ? t(titleKey, params) : warning.kind
let body = warning.messageKey
if (bodyKey) {
body = t(bodyKey, params)
}
+2 -2
View File
@@ -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
+2 -2
View File
@@ -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