feat: amber indicator during post-close wind-down buffer
All checks were successful
Build and Deploy / Build & Push (push) Successful in 2m22s

Parks in the 1-hour buffer after scheduled close now show amber instead
of green: the dot on the desktop calendar turns yellow, and the mobile
card badge changes from "Open today" (green) to "Closing" (amber).

- getOperatingStatus() replaces isWithinOperatingWindow's inline logic,
  returning "open" | "closing" | "closed"; isWithinOperatingWindow now
  delegates to it so all callers are unchanged
- closingParkIds[] is computed server-side and threaded through
  HomePageClient → WeekCalendar/MobileCardList → ParkRow/ParkCard
- New --color-closing-* CSS variables mirror the green palette in amber

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Josh Wright
2026-04-05 09:06:45 -04:00
parent 090f4d876d
commit 53297a7cff
7 changed files with 57 additions and 14 deletions

View File

@@ -19,6 +19,7 @@ interface HomePageClientProps {
data: Record<string, Record<string, DayData>>;
rideCounts: Record<string, number>;
coasterCounts: Record<string, number>;
closingParkIds: string[];
hasCoasterData: boolean;
scrapedCount: number;
}
@@ -31,6 +32,7 @@ export function HomePageClient({
data,
rideCounts,
coasterCounts,
closingParkIds,
hasCoasterData,
scrapedCount,
}: HomePageClientProps) {
@@ -165,6 +167,7 @@ export function HomePageClient({
today={today}
rideCounts={activeCounts}
coastersOnly={coastersOnly}
closingParkIds={closingParkIds}
/>
</div>
@@ -177,6 +180,7 @@ export function HomePageClient({
grouped={grouped}
rideCounts={activeCounts}
coastersOnly={coastersOnly}
closingParkIds={closingParkIds}
/>
</div>
</>