import { Link } from "react-router"; import type { Route } from "./+types/$leagueId.sports-seasons.$sportsSeasonId"; import { loader } from "./$leagueId.sports-seasons.$sportsSeasonId.server"; import { SportSeasonDisplay } from "~/components/scoring/SportSeasonDisplay"; import { EventSchedule } from "~/components/sport-season/EventSchedule"; import { Button } from "~/components/ui/button"; import { Badge } from "~/components/ui/badge"; import { ArrowLeft, CheckCircle2, Clock, Zap } from "lucide-react"; export { loader }; function getStatusBadge(status: string) { switch (status) { case "active": return ( Active ); case "upcoming": return ( Upcoming ); case "completed": return ( Completed ); default: return null; } } export default function SportSeasonDetail({ loaderData, }: Route.ComponentProps) { const { league, season, sportsSeason, scoringPattern, playoffMatches, playoffRounds, seasonStandings, qpStandings, teamOwnerships, userParticipantIds, upcomingEvents, recentEvents, seasonIsFinalized, } = loaderData; return (

{sportsSeason.sport.name}

{sportsSeason.name} • {league.name} • {season.year} Season

{getStatusBadge(sportsSeason.status)}
{/* Event schedule (upcoming + recent) - shown when there's event data */} {(upcomingEvents.length > 0 || recentEvents.length > 0) && (
)} = (sportsSeason.totalMajors || 0) && !sportsSeason.qualifyingPointsFinalized } teamOwnerships={teamOwnerships} userParticipantIds={userParticipantIds} scoringRules={season} showOwnership={true} />
); }