"use client" import { cn } from "@/lib/utils" import React from "react" import { Cell, Pie, PieChart as RechartsPieChart, ResponsiveContainer, Tooltip, } from "recharts" interface PieChartProps extends React.HTMLAttributes { data: Record[] dataKey: string nameKey: string colors?: string[] tooltipBgColor?: string tooltipBorderColor?: string valueFormatter?: (value: number) => string showTooltip?: boolean innerRadius?: number outerRadius?: number className?: string } const PieChart = React.forwardRef( ( { data = [], dataKey, nameKey, colors = ["var(--chart-1)", "var(--chart-2)", "var(--chart-3)", "var(--chart-4)", "var(--chart-5)"], tooltipBgColor = "var(--background)", tooltipBorderColor = "var(--border)", valueFormatter = (value: number) => value.toString(), showTooltip = true, innerRadius = 0, outerRadius = 100, className, ...props }, ref ) => { return (
{data.map((entry, index) => ( ))} {showTooltip && ( { if (!active || !payload?.length) return null const data = payload[0] return (
{data.name} {valueFormatter(data.value as number)}
) }} /> )}
) } ) PieChart.displayName = "PieChart" export { PieChart, type PieChartProps }