/** * RegistrationActivityChart Component * Displays user registration activity over time using an area chart */ 'use client'; import { Area, AreaChart, CartesianGrid, Legend, ResponsiveContainer, Tooltip, XAxis, YAxis, } from 'recharts'; import { ChartCard } from './ChartCard'; import { CHART_PALETTES } from '@/lib/chart-colors'; export interface RegistrationActivityData { date: string; registrations: number; } interface RegistrationActivityChartProps { data?: RegistrationActivityData[]; loading?: boolean; error?: string | null; } // Custom tooltip with proper theme colors const CustomTooltip = ({ active, payload }: any) => { if (active && payload && payload.length) { return (

{payload[0].payload.date}

New Registrations: {payload[0].value}

); } return null; }; export function RegistrationActivityChart({ data, loading, error, }: RegistrationActivityChartProps) { // Show empty chart if no data available const chartData = data || []; const hasData = chartData.length > 0 && chartData.some((d) => d.registrations > 0); return ( {!hasData && !loading && !error ? (

No registration data available

) : ( } /> )}
); }