import { Form, Link } from "react-router"; import type { Route } from "./+types/admin.sports-seasons.$id.events"; import { loader, action } from "./admin.sports-seasons.$id.events.server"; import { Button } from "~/components/ui/button"; import { Input } from "~/components/ui/input"; import { Label } from "~/components/ui/label"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "~/components/ui/card"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "~/components/ui/select"; import { Badge } from "~/components/ui/badge"; import { Calendar, Trophy, ArrowLeft, Trash2 } from "lucide-react"; import { format } from "date-fns"; export { loader, action }; export default function SportsSeasonEvents({ loaderData, actionData, }: Route.ComponentProps) { const { sportsSeason, events } = loaderData; const getEventTypeLabel = (type: string) => { switch (type) { case "playoff_game": return "Bracket"; case "major_tournament": return "Major Tournament"; case "final_standings": return "Final Standings"; default: return type; } }; const getStatusBadge = (isComplete: boolean) => { return isComplete ? ( Completed ) : ( In Progress ); }; return (

Scoring Events

{sportsSeason.sport.name} - {sportsSeason.name}

{/* Create New Event Card */} Create New Event Add a new scoring event (bracket, tournament, standings, etc.)
{actionData?.error && (
{actionData.error}
)}
{/* Events List */} Events {events.length} {events.length === 1 ? "event" : "events"} {events.length === 0 ? (

No events created yet. Create your first event above.

) : (
{events.map((event: { id: string; name: string; eventType: string; eventDate?: string | null; isComplete: boolean }) => (

{event.name}

{getStatusBadge(event.isComplete)}
{getEventTypeLabel(event.eventType)} {event.eventDate && ( {format(new Date(event.eventDate), "MMM d, yyyy")} )}
))}
)}
); }