import Link from "next/link"; import type { EventItem } from "@/lib/api"; import { dayHeader, utcDate, utcTime, typeLabel } from "@/lib/format"; import { Empty, Score, SilentBadge } from "./ui"; /** Git-log style timeline grouped by UTC day (spec ยง21). */ export function Timeline({ events, showSource = false }: { events: EventItem[]; showSource?: boolean }) { if (!events.length) return No events recorded yet.; const groups = new Map(); for (const e of events) { const d = utcDate(e.detected_at); if (!groups.has(d)) groups.set(d, []); groups.get(d)!.push(e); } return (
{[...groups.entries()].map(([day, evs]) => (
{dayHeader(evs[0]!.detected_at)}
{evs.map((e) => (
{utcTime(e.detected_at, false)}
{showSource && {e.source?.name}} {typeLabel(e.event_type)} {e.silent_change && }
{e.title}
))}
))}
); }