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}
/>
);
}