No description
Backend now stores hourly points for every day the provider returns (not just today) -- for Open-Meteo this is free, the hourly= block already covers the full forecast_days=8 window in the one call, today's strip just discarded everything past today. Met Office's hourly product window isn't verified this far out (only daily has been exercised live so far); an empty result for a given date just means "no hourly detail", handled as a graceful fallback, not an error. New GET /api/public/forecast/hourly?date=YYYY-MM-DD backs the modal. The main /api/public/forecast payload's `hourly` field is now its own scoped query (today only) rather than filtering the much bigger stored set in JS. Frontend: tapping any "Coming up" card (tomorrow/day-after or days 4-7) opens DayModal with that day's hourly points, falling back to the already-known 3-hourly points (or the single daily summary) if the provider doesn't have hourly detail that far out. Auto-closes after 20s of no interaction (pointerdown/keydown/wheel/scroll all reset the timer), with a depleting progress bar so the countdown isn't a surprise. Extracted PointMeta/AstroRow and the date/format helpers out of Display.tsx into shared modules since DayModal needs them too. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| backend | ||
| frontend | ||
| .gitignore | ||
| docker-compose.yml | ||
| seed-app.js | ||