"use client"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { CategoryIcon } from "@/components/ui/category-icon"; import { PieChart, Pie, Cell, Tooltip, ResponsiveContainer, Legend, } from "recharts"; export interface CategoryChartData { name: string; value: number; color: string; icon: string; [key: string]: string | number; } interface CategoryPieChartProps { data: CategoryChartData[]; formatCurrency: (amount: number) => string; title?: string; height?: number; innerRadius?: number; outerRadius?: number; emptyMessage?: string; } export function CategoryPieChart({ data, formatCurrency, title = "Répartition par catégorie", height = 300, innerRadius = 60, outerRadius = 100, emptyMessage = "Pas de données pour cette période", }: CategoryPieChartProps) { return ( {title} {data.length > 0 ? (
{data.map((entry, index) => ( ))} { if (!active || !payload?.length) return null; const item = payload[0].payload as CategoryChartData; return (
{item.name}
{formatCurrency(item.value)}
); }} /> (
{payload?.map((entry, index) => { const item = data.find((d) => d.name === entry.value); return (
{entry.value}
); })}
)} />
) : (
{emptyMessage}
)}
); }