'use client';
import { useState } from 'react';
import { LeagueStandingsTable } from '@/components/leagues/LeagueStandingsTable';
import type { LeagueStandingsViewData } from '@/lib/view-data/LeagueStandingsViewData';
import { Box } from '@/ui/Box';
import { Text } from '@/ui/Text';
import { Group } from '@/ui/Group';
import { Button } from '@/ui/Button';
import { Icon } from '@/ui/Icon';
import { Surface } from '@/ui/Surface';
import { Trophy, Users, Calendar, Award } from 'lucide-react';
interface LeagueStandingsTemplateProps {
viewData: LeagueStandingsViewData;
loading?: boolean;
onToggleTeamChampionship?: () => void;
}
export function LeagueStandingsTemplate({
viewData,
loading = false,
onToggleTeamChampionship,
}: LeagueStandingsTemplateProps) {
const [showTeamStandings, setShowTeamStandings] = useState(false);
if (loading) {
return (
Loading Standings...
);
}
const standings = viewData.standings.map((entry) => {
const driver = viewData.drivers.find(d => d.id === entry.driverId);
return {
position: entry.position,
driverName: driver?.name || 'Unknown Driver',
driverId: entry.driverId,
points: entry.totalPoints,
wins: entry.wins,
podiums: entry.podiums,
races: entry.racesStarted,
avgFinish: entry.avgFinish,
gap: entry.position === 1 ? '—' : `-${viewData.standings[0].totalPoints - entry.totalPoints}`,
positionChange: entry.positionChange,
lastRacePoints: entry.lastRacePoints,
droppedRaceIds: entry.droppedRaceIds,
};
});
// Calculate championship stats
const championshipStats = {
totalRaces: viewData.standings[0]?.racesStarted || 0,
totalDrivers: viewData.standings.length,
topWins: Math.max(...viewData.standings.map(s => s.wins)),
topPodiums: Math.max(...viewData.standings.map(s => s.podiums)),
};
return (
Championship Standings
{viewData.isTeamChampionship && onToggleTeamChampionship && (
)}
Official points classification for the current season.
{/* Championship Stats */}
Total Races
{championshipStats.totalRaces}
Total Drivers
{championshipStats.totalDrivers}
Most Wins
{championshipStats.topWins}
Most Podiums
{championshipStats.topPodiums}
);
}