"use client"; import { useId } from "react"; import { Area, AreaChart, CartesianGrid, Line, LineChart, ResponsiveContainer, Tooltip, XAxis, YAxis, } from "recharts"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; interface LineChartData { date: string; value: number; [key: string]: string | number; } interface LineChartProps { data: LineChartData[]; title?: string; dataKey?: string; color?: string; gradient?: boolean; height?: number; className?: string; } interface TooltipProps { active?: boolean; payload?: Array<{ value: number; name?: string }>; label?: string; } const CustomTooltip = ({ active, payload, label }: TooltipProps) => { if (active && payload && payload.length) { return (

{label}

{payload[0].value} {" "} sessions

); } return null; }; export default function ModernLineChart({ data, title, dataKey = "value", color = "hsl(var(--primary))", gradient = true, height = 300, className, }: LineChartProps) { const gradientId = useId(); const ChartComponent = gradient ? AreaChart : LineChart; return ( {title && ( {title} )} {gradient && ( )} } /> {gradient ? ( ) : ( )} ); }