import type { IChartData } from '@/app/_trpc/client'; import { AutoSizer } from '@/components/AutoSizer'; import { useVisibleSeries } from '@/hooks/useVisibleSeries'; import { cn } from '@/utils/cn'; import { round } from '@/utils/math'; import { getChartColor } from '@/utils/theme'; import { truncate } from '@/utils/truncate'; import { Cell, Pie, PieChart, Tooltip } from 'recharts'; import { useChartContext } from './ChartProvider'; import { ReportChartTooltip } from './ReportChartTooltip'; import { ReportTable } from './ReportTable'; interface ReportPieChartProps { data: IChartData; } export function ReportPieChart({ data }: ReportPieChartProps) { const { editMode } = useChartContext(); const { series, setVisibleSeries } = useVisibleSeries(data); const sum = series.reduce((acc, serie) => acc + serie.metrics.sum, 0); const pieData = series.map((serie) => ({ id: serie.name, color: getChartColor(serie.index), index: serie.index, label: serie.name, count: serie.metrics.sum, percent: serie.metrics.sum / sum, })); return ( <>