"use client"; import type { ActivityEvent } from "@/lib/types"; const eventColors: Record = { channel_created: "bg-green-900/40 text-green-400", channel_updated: "bg-blue-900/40 text-blue-400", channel_deleted: "bg-red-900/40 text-red-400", schedule_generated: "bg-violet-900/40 text-violet-400", user_login: "bg-zinc-800 text-zinc-400", }; function fmtTs(ts: string) { try { const d = new Date(ts); return d.toLocaleTimeString(undefined, { hour12: false }); } catch { return ts; } } interface ActivityLogPanelProps { events: ActivityEvent[]; isLoading: boolean; } export function ActivityLogPanel({ events, isLoading }: ActivityLogPanelProps) { return (
Activity
{isLoading && events.length === 0 ? (

Loading…

) : events.length === 0 ? (

No activity yet.

) : (
{events.map((event) => (
{event.event_type.replace(/_/g, " ")} {fmtTs(event.timestamp)}

{event.detail}

{event.channel_id && (

ch: {event.channel_id.slice(0, 8)}…

)}
))}
)}
); }