feat: blue dot + Weather Delay notice for storm-closed parks

- Dot turns blue (instead of green) during weather delay on homepage
- Mobile card "Open today" badge becomes blue "⛈ Weather Delay"
- Park page LiveRidePanel shows a blue "⛈ Weather Delay — all rides currently closed" badge instead of "Not open yet — check back soon"
- Added --color-weather-* CSS variables (blue palette)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Josh Wright
2026-04-05 15:01:37 -04:00
parent 32f0d05038
commit f85cc084b7
5 changed files with 36 additions and 20 deletions

View File

@@ -27,6 +27,12 @@
--color-open-text: #4ade80;
--color-open-hours: #bbf7d0;
/* ── Weather delay — blue (open by schedule but all rides closed) ───────── */
--color-weather-bg: #0a1020;
--color-weather-border: #3b82f6;
--color-weather-text: #60a5fa;
--color-weather-hours: #bfdbfe;
/* ── Closing — amber (post-close buffer, rides still winding down) ───────── */
--color-closing-bg: #1a1100;
--color-closing-border: #d97706;

View File

@@ -73,6 +73,13 @@ export default async function ParkPage({ params, searchParams }: PageProps) {
}
}
// Weather delay: park is within operating hours but queue-times shows 0 open rides
const isWeatherDelay =
withinWindow &&
liveRides !== null &&
liveRides.rides.length > 0 &&
liveRides.rides.every((r) => !r.isOpen);
// Only hit the schedule API as a fallback when live data is unavailable
if (!liveRides && apiId !== null) {
// Note: the API drops today's date from its response (only returns future dates),
@@ -157,6 +164,7 @@ export default async function ParkPage({ params, searchParams }: PageProps) {
<LiveRidePanel
liveRides={liveRides}
parkOpenToday={!!parkOpenToday}
isWeatherDelay={isWeatherDelay}
/>
) : (
<RideList