mirror of
https://github.com/MBombeck/HealthLog.git
synced 2026-11-10 05:12:14 +00:00
The BD-Zielbereich tile rendered "1.1." instead of the expected percent. Root cause: the dashboard mount synthesised a fake `slope30 = bpTrendDelta / 30` so the trend arrow could move. The result was a small float (≈ 1.1 for a 33-point delta) that the TrendCard's downstream formatter pipeline rendered as a date-shaped artefact — the maintainer's screenshot regression across v1.4.22 / v1.4.25 / v1.4.26 patches that kept treating the symptom instead of the divergence. Rewrite the tile against the shared `<TrendCard>` primitive with the same prop contract every other tile uses (`latest`, `avg7`, `avg30`, `slope30=null`, `trend7Delta`, `compareBaseline`, `compareDelta`). Drop the synthetic-slope block, drop the `avgAllTime` prop family from `<TrendCard>` (the BD tile was the only consumer), drop the orphan `charts.avgAllTimeShort` i18n key across six locales. The all-time aggregate stays visible on the `/targets` Blutdruck card with full context. New regression spec at `src/components/charts/__tests__/bd-tile.test.tsx` locks the BD tile's headline to a numeric percent string, asserts DOM-shape parity with the Weight tile, and pins the absence of the retired `trend-card-all-time` slot. iOS contract: none. `/api/analytics` still emits the `bpInTargetPct*` family unchanged (the `bpInTargetPctAllTime` field stays for the /targets page consumer); iOS does not consume the dashboard tile.