"use client" import { Line } from "react-chartjs-2" import { useTheme } from "next-themes" import { getChartColors, defaultChartOptions } from "@/lib/chart-config" import type { ChartOptions } from "chart.js" interface LineChartProps { data: { labels: string[] datasets: { label: string data: number[] borderColor?: string backgroundColor?: string }[] } options?: ChartOptions<"line"> height?: number showGrid?: boolean showPoints?: boolean } export function LineChart({ data, options, height = 300, showGrid = true, showPoints = true }: LineChartProps) { const { theme } = useTheme() const colors = getChartColors(theme) const chartData = { ...data, datasets: data.datasets.map((dataset, index) => ({ ...dataset, borderColor: dataset.borderColor || (index === 0 ? colors.primary : colors.secondary), backgroundColor: dataset.backgroundColor || (index === 0 ? `${colors.primary}20` : `${colors.secondary}20`), tension: 0.4, fill: true, borderWidth: 2, pointRadius: showPoints ? 3 : 0, pointHoverRadius: showPoints ? 5 : 0, })), } const chartOptions: ChartOptions<"line"> = { ...defaultChartOptions, ...options, scales: { y: { display: showGrid, grid: { display: showGrid, color: colors.grid, }, ticks: { display: showGrid, color: colors.text, }, }, x: { grid: { display: false, }, ticks: { color: colors.text, }, }, }, plugins: { ...defaultChartOptions.plugins, ...options?.plugins, legend: { display: false, }, }, } return (