'use client' import * as React from 'react' import { Label, Pie, PieChart, Sector } from 'recharts' import { PieSectorDataItem } from 'recharts/types/polar/Pie' import { Card, CardContent, CardDescription, CardHeader, CardTitle } from 'ui' import { ChartConfig, ChartContainer, ChartStyle, ChartTooltip, ChartTooltipContent } from 'ui' import { Select_Shadcn_, SelectContent_Shadcn_, SelectItem_Shadcn_, SelectTrigger_Shadcn_, SelectValue_Shadcn_, } from 'ui' export const description = 'An interactive pie chart' const desktopData = [ { month: 'january', desktop: 186, fill: 'var(--color-january)' }, { month: 'february', desktop: 305, fill: 'var(--color-february)' }, { month: 'march', desktop: 237, fill: 'var(--color-march)' }, { month: 'april', desktop: 173, fill: 'var(--color-april)' }, { month: 'may', desktop: 209, fill: 'var(--color-may)' }, ] const chartConfig = { visitors: { label: 'Visitors', }, desktop: { label: 'Desktop', }, mobile: { label: 'Mobile', }, january: { label: 'January', color: 'hsl(var(--chart-1))', }, february: { label: 'February', color: 'hsl(var(--chart-2))', }, march: { label: 'March', color: 'hsl(var(--chart-3))', }, april: { label: 'April', color: 'hsl(var(--chart-4))', }, may: { label: 'May', color: 'hsl(var(--chart-5))', }, } satisfies ChartConfig export default function Component() { const id = 'pie-interactive' const [activeMonth, setActiveMonth] = React.useState(desktopData[0].month) const activeIndex = React.useMemo( () => desktopData.findIndex((item) => item.month === activeMonth), [activeMonth] ) const months = React.useMemo(() => desktopData.map((item) => item.month), []) return (
Pie Chart - Interactive January - June 2024
{months.map((key) => { const config = chartConfig[key as keyof typeof chartConfig] if (!config) { return null } return (
{config?.label}
) })}
} /> ( )} >
) }