import { format, parseISO } from "date-fns"; import { Card, CardContent, CardHeader, CardTitle } from "~/components/ui/card"; import { Badge } from "~/components/ui/badge"; import { Calendar, CheckCircle2, Clock } from "lucide-react"; interface ScheduleEvent { id: string; name: string; eventDate: string | null; eventType: string; isComplete: boolean; completedAt?: Date | string | null; } interface EventScheduleProps { upcomingEvents: ScheduleEvent[]; recentEvents: ScheduleEvent[]; } function formatEventDate(dateStr: string | null | undefined): string { if (!dateStr) return "Date TBD"; try { // eventDate is stored as a date string "YYYY-MM-DD" return format(parseISO(dateStr), "MMM d, yyyy"); } catch { return dateStr; } } function getEventTypeLabel(eventType: string): string { switch (eventType) { case "playoff_game": return "Bracket"; case "major_tournament": return "Major"; case "final_standings": return "Final Standings"; case "schedule_event": return "Non-Scoring"; default: return eventType; } } export function EventSchedule({ upcomingEvents, recentEvents }: EventScheduleProps) { const hasUpcoming = upcomingEvents.length > 0; const hasRecent = recentEvents.length > 0; if (!hasUpcoming && !hasRecent) return null; return (
{index === 0 && ( )} {event.name}
{event.name}