mirror of
https://github.com/umami-software/umami.git
synced 2026-02-06 05:37:20 +01:00
31 lines
812 B
TypeScript
31 lines
812 B
TypeScript
import { Chart, ChartProps } from '@/components/charts/Chart';
|
|
import { useState } from 'react';
|
|
import { ChartTooltip } from '@/components/charts/ChartTooltip';
|
|
|
|
export interface PieChartProps extends ChartProps {
|
|
type?: 'doughnut' | 'pie';
|
|
}
|
|
|
|
export function PieChart({ type = 'pie', ...props }: PieChartProps) {
|
|
const [tooltip, setTooltip] = useState(null);
|
|
|
|
const handleTooltip = ({ tooltip }) => {
|
|
const { opacity, labelColors, title, dataPoints } = tooltip;
|
|
|
|
setTooltip(
|
|
opacity
|
|
? {
|
|
color: labelColors?.[0]?.backgroundColor,
|
|
value: `${title}: ${dataPoints[0].raw}`,
|
|
}
|
|
: null,
|
|
);
|
|
};
|
|
|
|
return (
|
|
<>
|
|
<Chart {...props} type={type} onTooltip={handleTooltip} />
|
|
{tooltip && <ChartTooltip {...tooltip} />}
|
|
</>
|
|
);
|
|
}
|