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