Lead the overview with the days about to be lost
The page opened with generic tiles and a bar reading forty-eight of ninety-six weeks, which was neither weeks nor connected to the age-four ceiling it appeared to describe. It is replaced by one headline and a bar per parent, in days, against each parent's own savable limit as the server reports it. The headline has two framings on the same arithmetic. Before anything is planned it says what there is to plan and what will be lost without a plan, because on the first day almost the whole entitlement is technically at risk and saying so bluntly reads as an accusation. Once a plan exists it warns about the days genuinely at stake. A timeline of the years to the fourth birthday answers what the next four years look like, which a month-at-a-time calendar cannot. Shortfalls, surplus advice and balances sit below the fold, read-only: applying is automatic now, so a second apply button would be a way to get two different answers. Rejection messages move to one shared place that resolves a parent's name, so an identifier can no longer surface in their place.
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
export const dashboard = {
|
||||
'age4Bars.expiringStat': '{expiring} days expiring',
|
||||
'age4Bars.savableStat': '{left} of {cap} days can be saved',
|
||||
'age4Bars.title': 'Days left at age 4, per parent',
|
||||
'dashboard.addChildButton': 'Add child',
|
||||
'dashboard.addChildIntro': 'You have no children registered yet. Add your first child to get started.',
|
||||
'dashboard.addChildTitle': 'Add child',
|
||||
@@ -13,11 +16,16 @@ export const dashboard = {
|
||||
'dashboard.expiringAtB4ParentFallback': 'Parent {number}',
|
||||
'dashboard.fetchFromFk': 'Fetch from Försäkringskassan',
|
||||
'dashboard.fillAllFields': 'Fill in all fields',
|
||||
'dashboard.hero.hasPlanMessage': '{atRisk} days are at risk of disappearing when {childName} turns 4 ({date}).',
|
||||
'dashboard.hero.noPlanMessage': 'You have {days} days to plan. Without a plan, {atRisk} of them will disappear when {childName} turns 4.',
|
||||
'dashboard.loading': 'Loading...',
|
||||
'dashboard.moreDetailsSummary': 'More details',
|
||||
'dashboard.namePlaceholder': 'Name',
|
||||
'dashboard.overviewTitle': 'Overview',
|
||||
'dashboard.planFold.noWishesHint': 'Add wishes under Planning to see a proposal here.',
|
||||
'dashboard.planFold.summary': 'Plan proposal for the years ahead',
|
||||
'dashboard.planFold.unknownParent': 'Unknown parent',
|
||||
'dashboard.plannedDaysTitle': 'Planned days',
|
||||
'dashboard.remainingUntilB4Title': 'Remaining until age 4',
|
||||
'dashboard.saveManualFetchError': 'Could not save the details',
|
||||
'dashboard.usedDays': 'Used days',
|
||||
'daysBreakdown.daysHeader': 'Days',
|
||||
@@ -35,7 +43,6 @@ export const dashboard = {
|
||||
'parentalLeaveBreakdown.totalHeader': 'Total',
|
||||
'parentalLeaveBreakdown.transferableDays': 'Transferable days',
|
||||
'parentalLeaveBreakdown.typeHeader': 'Type',
|
||||
'progressChart.age': 'Age: {age}',
|
||||
'progressChart.title': 'Parental leave — progress',
|
||||
'progressChart.weeksStat': '{current} / {target} weeks',
|
||||
'yearTimeline.bandLabel': '{dayType}, {startDate} – {endDate}',
|
||||
'yearTimeline.title': 'The years ahead',
|
||||
} as const
|
||||
|
||||
@@ -52,12 +52,13 @@ export const plan = {
|
||||
'planResults.previewBanner': 'This is a suggestion — nothing is saved automatically. You can adjust your wishes above and suggest a new plan as many times as you like.',
|
||||
'planResults.projectedLeftHeader': 'Projected left',
|
||||
'planResults.rejectionCollisionsNeedReplace': '{count} day(s) already planned differently; pass replace=true to overwrite',
|
||||
'planResults.rejectionConflictingDuplicate': 'Conflicting duplicate entries for {date} (child {child_id}, parent {parent_personal_data_uuid}) in the same batch',
|
||||
'planResults.rejectionConflictingDuplicate': 'Conflicting duplicate entries for {date} (child {child_id}, parent {parent_name}) in the same batch',
|
||||
'planResults.rejectionDubbeldagBatchQuotaExceeded': 'This batch would result in {projected_total} double days, the max is {max_dubbeldagar}',
|
||||
'planResults.rejectionDubbeldagInvalid': 'The double day for {date} could not be approved',
|
||||
'planResults.rejectionDubbeldagQuotaReached': 'The double-days quota ({max_dubbeldagar} days) has already been reached',
|
||||
'planResults.rejectionDubbeldagWindowExceeded': 'Double days are only allowed within the child\'s first {months_limit} months (deadline {deadline})',
|
||||
'planResults.rejectionInsufficientBalance': 'This batch needs {needed} more "{tier}" day(s) but only {remaining} remain',
|
||||
'planResults.rejectionInsufficientVacationBalance': '{parent_name} would need {needed} more vacation day(s) in {year}, but only {remaining} remain',
|
||||
'planResults.rejectionInvalidDayType': 'Day {index} ({date}): invalid day type "{day_type}"',
|
||||
'planResults.rejectionOutsideEligibleWindow': '{date}: outside the child\'s eligible window ({birth_date} – {hard_expiry})',
|
||||
'planResults.rejectionsClause': '. Rejected: {rejections}',
|
||||
@@ -88,6 +89,7 @@ export const plan = {
|
||||
'planResults.surplusAdviceUseLessVacation': 'Save fewer vacation days',
|
||||
'planResults.surplusAdviceWishMoreLeave': 'Wish for more leave',
|
||||
'planResults.totalAvailableHeader': 'Total available',
|
||||
'planResults.unknownParent': 'Unknown parent',
|
||||
'planResults.usedHeader': 'Used',
|
||||
'planResults.vacationAssumedBadge': 'Assumed',
|
||||
'planResults.vacationAssumedPrompt': 'No value is recorded for this year — the statutory 25 days has been assumed. Confirm or edit it in Settings.',
|
||||
|
||||
Reference in New Issue
Block a user