"use client"
import {
LineChart as RechartsLineChart,
Line,
XAxis,
YAxis,
CartesianGrid,
Tooltip,
Legend,
ResponsiveContainer,
BarChart as RechartsBarChart,
Bar,
PieChart as RechartsPieChart,
Pie,
Cell,
} from "recharts"
interface ChartProps {
data: any
height?: number
}
export function LineChart({ data, height = 300 }: ChartProps) {
return (
{
const dataPoint = { name: label }
data.datasets.forEach((dataset, j) => {
dataPoint[dataset.label] = dataset.data[i]
})
return dataPoint
})}
>
{data.datasets.map((dataset, i) => (
))}
)
}
export function BarChart({ data, height = 300 }: ChartProps) {
return (
{
const dataPoint = { name: label }
data.datasets.forEach((dataset, j) => {
dataPoint[dataset.label] = dataset.data[i]
})
return dataPoint
})}
>
{data.datasets.map((dataset, i) => (
))}
)
}
export function PieChart({ data, height = 300 }: ChartProps) {
return (
({
name: label,
value: data.datasets[0].data[i],
}))}
cx="50%"
cy="50%"
labelLine={false}
outerRadius={80}
fill="#8884d8"
dataKey="value"
label={({ name, percent }) => `${name}: ${(percent * 100).toFixed(0)}%`}
>
{data.labels.map((entry, index) => (
|
))}
)
}