'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, })); const CustomTooltip = ({ active, payload, label, }: { active?: boolean; payload?: Array<{ payload: { priority: string; Terminées: number; 'En cours': number; completionRate: number; total: number; }; }>; 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)