import React, { useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { BarChart3 } from 'lucide-react'; import { AreaChart, Area, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Legend, } from 'recharts'; import { MonitoringData } from '../../types/monitoring'; interface TrafficChartProps { traffic?: MonitoringData['traffic']; loading?: boolean; } export default function TrafficChart({ traffic, loading }: TrafficChartProps) { const { t } = useTranslation(); const chartData = useMemo( () => (traffic?.points ?? []).map((point) => ({ ...point, time: point.timestamp.toLocaleString( [], traffic?.bucket === 'day' ? { month: 'short', day: 'numeric' } : { month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit', }, ), })), [traffic], ); if (loading) { return (
{t('monitoring.trafficChart.truncated')}
)}