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:
@@ -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,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)
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user