'use client'; import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Legend } from 'recharts'; interface PriorityData { priority: string; completed: number; pending: number; total: number; completionRate: number; color: string; } interface PriorityBreakdownChartProps { data: PriorityData[]; className?: string; } export function PriorityBreakdownChart({ data, className }: PriorityBreakdownChartProps) { // Transformer les données pour l'affichage const getPriorityLabel = (priority: string) => { const labels: { [key: string]: string } = { 'high': 'Haute', 'medium': 'Moyenne', 'low': 'Basse' }; return labels[priority] || priority; }; const chartData = data.map(item => ({ priority: getPriorityLabel(item.priority), 'Terminées': item.completed, 'En cours': item.pending, completionRate: item.completionRate, total: item.total })); // eslint-disable-next-line @typescript-eslint/no-explicit-any const CustomTooltip = ({ active, payload, label }: { active?: boolean; payload?: any[]; label?: string }) => { if (active && payload && payload.length) { const data = payload[0].payload; return (
{`Priorité ${label}`}
Terminées: {data['Terminées']}
En cours: {data['En cours']}
Taux: {data.completionRate.toFixed(1)}% ({data.total} total)