'use client'; import { BarChart, Bar, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Cell } from 'recharts'; import { SprintVelocity } from '@/lib/types'; interface VelocityChartProps { sprintHistory: SprintVelocity[]; className?: string; onSprintClick?: (sprint: SprintVelocity) => void; } export function VelocityChart({ sprintHistory, className, onSprintClick }: VelocityChartProps) { // Préparer les données pour le graphique const chartData = sprintHistory.map(sprint => ({ name: sprint.sprintName, completed: sprint.completedPoints, planned: sprint.plannedPoints, completionRate: sprint.completionRate, sprintData: sprint // Garder la référence au sprint original })); const handleBarClick = (data: unknown) => { if (onSprintClick && data && typeof data === 'object' && data !== null && 'sprintData' in data) { const typedData = data as { sprintData: SprintVelocity }; onSprintClick(typedData.sprintData); } }; const CustomTooltip = ({ active, payload, label }: { active?: boolean; payload?: Array<{ payload: { completed: number; planned: number; completionRate: number } }>; label?: string }) => { if (active && payload && payload.length) { const data = payload[0].payload; return (
{label}
🖱️ Cliquez pour voir les détails