import Link from "next/link"; import type { Park } from "@/lib/scrapers/types"; import type { DayData } from "@/lib/db"; interface ParkCardProps { park: Park; weekDates: string[]; // 7 dates YYYY-MM-DD, Sun–Sat parkData: Record; today: string; } const DOW = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]; export function ParkCard({ park, weekDates, parkData, today }: ParkCardProps) { const openDays = weekDates.filter((d) => parkData[d]?.isOpen && parkData[d]?.hoursLabel); const isOpenToday = openDays.includes(today); return (
{/* ── Card header ───────────────────────────────────────────────────── */}
{park.name}
{park.location.city}, {park.location.state}
{isOpenToday ? (
Open today
) : (
Closed today
)}
{/* ── Open days list ────────────────────────────────────────────────── */} {openDays.length > 0 && (
{openDays.map((date, i) => { const dow = new Date(date + "T00:00:00").getDay(); const isToday = date === today; const dayData = parkData[date]; const isPH = dayData.specialType === "passholder_preview"; const isLast = i === openDays.length - 1; return (
{isToday ? "Today" : DOW[dow]}
{isPH && ( Passholder )} {dayData.hoursLabel}
); })}
)}
); }