import AdminPageHeader from "@/components/admin/admin-page-header"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { getAnalyticsSummary } from "@/lib/analytics"; const eventLabels: Record = { PAGE_VIEW: "Page views", PROJECT_OPEN: "Project opens", MELODY_PLAY: "Melody plays", PROJECT_LINK_CLICK: "Project link clicks", CONTACT_SUBMITTED: "Contact submissions", }; export default async function AnalyticsPage() { const summary = await getAnalyticsSummary(); const grouped = summary.grouped.map((item) => ({ type: item.type, count: item._count._all })); return (
{Object.entries(eventLabels).map(([type, label]) => ( {label}

{grouped.find((item) => item.type === type)?.count ?? 0}

Last 30 days

))}
Recent events {summary.recent.length === 0 ?

No events recorded yet.

:
{summary.recent.map((event) =>
{eventLabels[event.type] ?? event.type}{event.path || "—"} · {event.createdAt.toLocaleString("en-GB")}
)}
}

Total events recorded: {summary.total}

); }