'use client' import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, Legend, ResponsiveContainer, } from 'recharts' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card' interface JurorWorkloadData { id: string name: string assigned: number completed: number completionRate: number } interface JurorWorkloadProps { data: JurorWorkloadData[] } export function JurorWorkloadChart({ data }: JurorWorkloadProps) { // Truncate names for display const formattedData = data.map((d) => ({ ...d, displayName: d.name.length > 15 ? d.name.substring(0, 15) + '...' : d.name, })) const totalAssigned = data.reduce((sum, d) => sum + d.assigned, 0) const totalCompleted = data.reduce((sum, d) => sum + d.completed, 0) const overallRate = totalAssigned > 0 ? Math.round((totalCompleted / totalAssigned) * 100) : 0 return ( Juror Workload {overallRate}% overall completion
[ value ?? 0, (name ?? '') === 'assigned' ? 'Assigned' : 'Completed', ]} labelFormatter={(_, payload) => { if (payload && payload[0]) { const item = payload[0].payload as JurorWorkloadData return `${item.name} (${item.completionRate}% complete)` } return '' }} />
) }