"use client"; import { useEffect, useState } from "react"; import { useTranslations } from "next-intl"; import { AreaChart, Area, XAxis, YAxis, Tooltip, ResponsiveContainer, } from "recharts"; import { Card, CardHeader, CardTitle, CardContent } from "@/components/ui/card"; interface HourlyData { hour: string; count: number; } export function ActivityTimeline() { const t = useTranslations("activityTimeline"); const [data, setData] = useState([]); useEffect(() => { const fetchData = async () => { try { const res = await fetch("/api/v1/stats"); if (res.ok) { const json = await res.json(); setData(json.hourlyActivity ?? []); } } catch { // retry on next interval } }; fetchData(); const interval = setInterval(fetchData, 30000); return () => clearInterval(interval); }, []); return ( {t("title")}
); }