import { LineChart, Line, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer } from 'recharts'; import { Card, CardContent, CardHeader, CardTitle, CardDescription } from "~/components/ui/card"; interface Team { id: string; name: string; } interface ChartDataPoint { date: string; [teamName: string]: string | number; } interface PointProgressionChartProps { chartData: ChartDataPoint[]; teams: Team[]; } // Color palette for team lines const COLORS = [ '#3b82f6', // blue '#ef4444', // red '#10b981', // green '#f59e0b', // amber '#8b5cf6', // violet '#ec4899', // pink '#06b6d4', // cyan '#f97316', // orange '#84cc16', // lime '#6366f1', // indigo ]; export function PointProgressionChart({ chartData, teams }: PointProgressionChartProps) { if (chartData.length === 0) { return ( Point Progression Track how team standings evolved over time

No historical data available yet.

Point progression will appear once daily snapshots are recorded.

); } // Format date for display const formatDate = (dateStr: string) => { const date = new Date(dateStr); return date.toLocaleDateString('en-US', { month: 'short', day: 'numeric' }); }; return ( Point Progression Track how team standings evolved over time ({chartData.length} day{chartData.length !== 1 ? 's' : ''} of data) formatDate(label as string)} formatter={(value: number) => [value.toFixed(2), '']} /> {teams.map((team, index) => ( ))} ); }