"use client" import { BarChart3 } from "lucide-react" import { Bar, BarChart, CartesianGrid, Legend, XAxis, YAxis, } from "recharts" import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "@/shared/components/ui/card" import { ChartContainer, ChartTooltip, ChartTooltipContent, } from "@/shared/components/ui/chart" import { EmptyState } from "@/shared/components/ui/empty-state" import type { ClassComparisonItem } from "@/modules/grades/types" const chartConfig = { averageScore: { label: "Average (%)", color: "hsl(var(--primary))" }, passRate: { label: "Pass Rate (%)", color: "hsl(var(--chart-2))" }, excellentRate: { label: "Excellent (%)", color: "hsl(var(--chart-3))" }, } interface ClassComparisonChartProps { data: ClassComparisonItem[] } export function ClassComparisonChart({ data }: ClassComparisonChartProps) { if (!data || data.length === 0) { return ( Class Comparison Compare average, pass rate, and excellent rate across classes. ) } const chartData = data.map((d) => ({ name: d.className, averageScore: d.averageScore, passRate: d.passRate, excellentRate: d.excellentRate, count: d.count, studentCount: d.studentCount, })) return ( Class Comparison Average score, pass rate (≥60%), and excellent rate (≥85%) per class. value.length > 8 ? `${value.slice(0, 8)}...` : value } /> `${value}%`} width={36} /> } /> ) }