import type { Park } from "@/lib/scrapers/types"; interface CalendarGridProps { parks: Park[]; calendar: Record; daysInMonth: number; year: number; month: number; } const DOW_LABELS = ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa"]; export function CalendarGrid({ parks, calendar, daysInMonth, year, month, }: CalendarGridProps) { const days = Array.from({ length: daysInMonth }, (_, i) => i + 1); const today = new Date(); const todayDay = today.getFullYear() === year && today.getMonth() + 1 === month ? today.getDate() : null; return (
{days.map((day) => { const dow = new Date(year, month - 1, day).getDay(); const isWeekend = dow === 0 || dow === 6; const isToday = day === todayDay; return ( ); })} {parks.map((park) => { const parkDays = calendar[park.id] ?? []; return ( {days.map((day) => { const isOpen = parkDays[day - 1] ?? false; const isToday = day === todayDay; return ( ); })} ); })}
Park
{DOW_LABELS[dow]}
{day}
{park.shortName}
); }