Web: shared entity components — kill the render forks #129
Labels
No labels
adr
android
area/calendar
area/design-system
area/i18n
area/jobs
area/offline
area/server
area/testing
bug
ci
duplicate
enhancement
help wanted
invalid
notifications
question
reliability
security
severity/low
severity/medium
tracking
web
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
eagraiclainne/app#129
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
From the surface parity report (2026-08-18), section 5.1 and consolidation targets 1, 3, 4, 5, 6, 10.
No entity card/row is defined once on the web. Jobs render at 12 sites; the Today card vs Jobs card fork drops four features (repeat glyph, description, due label, take) and duplicates the "Worth N points" sentence under two message ids. The due label exists in 4 incompatible formats.
deadlineLabel,isOverdueandbyDeadlineare byte-identical duplicates in Today.tsx and Jobs.tsx.Targets:
JobCardintocomponents/with a variant/flag; Today and Jobs consume it. This is the component work behind #107.deadline.ts(label, overdue, sort, timed predicate); delete the copies and the three Calendar formats.points.ts(single formatter, single clamped ledger) — closes the negative-balance inconsistency.MemberSelectcomponent (mark-option grid + sentinel-label prop) — replaces 13 copies.repeatLabelunified on theIntlpath.Also from 5.1: Today bypasses
timeRange()for a localeventTime()(the same event reads "14:00" vs "14:00 – 15:30"),FamilyTree.tsx:443re-implements<Mark>as raw SVG,ProfileSwitchPanel.tsx:140bypassesmarkColorVar(), the "Dinner" fallback is written 5 times, and Today's dinner strip wears the rewards.reward-stripclass.