"use client"; import { Area, AreaChart as RechartsAreaChart, CartesianGrid, Legend, ResponsiveContainer, Tooltip, XAxis, YAxis, } from "recharts"; // Define a generic type for chart data interface ChartDataItem { [key: string]: string | number; } interface AreaChartProps { data: ChartDataItem[]; index: string; categories: string[]; colors?: string[]; valueFormatter?: (value: number) => string; className?: string; showLegend?: boolean; showXAxis?: boolean; showYAxis?: boolean; showGrid?: boolean; yAxisWidth?: number; } export function AreaChart({ data, index, categories, colors = ["#3b82f6", "#10b981", "#6366f1", "#f59e0b", "#ef4444"], valueFormatter = (value: number) => `${value}`, className, showLegend = true, showXAxis = true, showYAxis = true, showGrid = true, yAxisWidth = 55, }: AreaChartProps) { return ( {showGrid && ( )} {showXAxis && ( )} {showYAxis && ( )} [valueFormatter(value), ""]} labelFormatter={(value) => `${value}`} separator="" itemStyle={{ padding: "2px 0" }} contentStyle={{ backgroundColor: "white", borderRadius: "0.375rem", border: "1px solid #e5e7eb", boxShadow: "0 1px 2px 0 rgba(0, 0, 0, 0.05)", padding: "0.5rem 0.75rem", }} /> {showLegend && ( ( {value} )} /> )} {categories.map((category, i) => ( ))} ); }