cd3efa98fc
Features: - Teeth tracker: Tooth model + migration, API routes (GET/POST upsert/DELETE), page at /teeth with 20-tooth grid, progress bar, inline mark/unmark flow - Dashboard feeding analysis: avg interval + last feed + next expected time widget - Fix dashboard baby?.name crash (selectedBaby?.name) UI/UX: - Sidebar: grouped into Suivi / Santé / Vie du bébé / Outils sections - Nav: active highlight works on child routes (startsWith) - Timeline: filter chips sticky on mobile; skeleton cards replace spinner - Stats: 500-event limit warning banner - Medications: 3 states — "Dans Xh" (orange), "Disponible" (green), "En retard de Xh" (amber) - Notes: skip auto-save on empty/whitespace blur Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.1 KiB
4.1 KiB
Improvements & Known Issues
Critical Bugs
- Photos 404 in Docker — serve via
/api/photos/[filename]fromUPLOAD_DIR=/data/uploads - WHO curves invisible when baby has measurements —
connectNullson percentile Lines - Symptom icon missing —
Activitynot in event-icon map - Default duration missing — events saved without timer now get per-type default duration
UI/UX Improvements
Dashboard
- Empty state for new users — onboarding callout when no events today
- Active timers show which baby — baby name badge below event label
- Medication overdue — 3 states: "Dans Xh" (orange), "Disponible" (green), "En retard de Xh" (amber)
- Feeding pattern analysis widget — avg interval + last feed + next expected (in progress)
Growth
- Single-measurement chart — shows point + WHO curves (was blank until 2+ points)
- "PC" label — expanded to "PC — Périmètre crânien (cm)"
- WHO percentile ⓘ tooltip — explains P50/P3-P97
- Date field defaults to today in add-measurement form
- PDF export percentile rank — WHO band (e.g. P25–P50) shown next to weight
Stats
- Heatmap legend — shows actual counts (0 1 2 3 4+)
- Sleep timeline label — "Fenêtre 19h – 11h"
- Event limit warning — banner when 500-event limit hit
- Chart zero-data gaps — distinguish "no data" vs "zero events" visually
Timeline
- Filter state sticky — persisted in URL param
?type=... - Filter chips sticky on mobile —
sticky top-0 z-10container - Loading skeleton — skeleton cards replace spinner on first render
- Inline note save feedback — ✓ flash after blur
- Photo thumbnail clickable — opens in new tab
- Select mode indicator — toggle shows "Annuler" when active
Photos
- Lightbox wraps — next on last → first, prev on first → last
- Delete from lightbox — trash icon PATCHes event metadata to remove photo
Search
- Results clickable — events link to
/timeline?date=..., notes to/notes?date=... - Result count header — "X événements · Y notes"
- Date/type filter chips on search results
Notes
- Unsaved indicator — amber dot while dirty, green ✓ after save
- Date jump input — invisible date input overlaid on label, opens native calendar
- Empty blur fix — skip save on empty/whitespace content
Milestones
- Sort by date within month group
Settings
- Pushover key eye toggle — show/hide pasted key
- API key delete confirmation — shows key name in confirm dialog
- Sections collapsible — SectionCard accordion
- Invite link note — "Le lien n'expire pas — réinitialisez-le si compromis"
Event Modal
- Timer resume indicator — "Reprise du chronomètre" when loaded from localStorage
- Milk lot hint — "Sélectionnez un lot — il sera marqué comme utilisé"
- Photo size client-side validation — 5MB guard before upload
Navigation
- Baby switcher
aria-label— added to nav select - Active highlight on child routes — uses
startsWithinstead of exact match - Sidebar grouped — sections: Suivi / Santé / Vie du bébé / Outils (replaces flat 14-item list)
Feature Backlog
- Vaccination tracker — full UI + API, overdue badges, done/upcoming sections
- Teeth tracker — visual grid of 20 baby teeth, tap to mark appeared (in progress)
- Doctor visit log — notes, prescriptions, next appointment date
- Baby schedule prediction — "usually naps around 14h30" from historical patterns
- Growth chart in PDF — embed chart image (jsPDF canvas) not just table
- Natural language digest — "Emma feeds every 2h45 on average" weekly push
- Wellness check-in — parent self-reports sleep/mood for postpartum monitoring
- Weight gain on-track indicator — projected line on growth chart
- Contraction timer — repurpose timer infra for pre-birth use