import { useActivity } from '../hooks/useApi'; export function ActivityFeed() { const { data: activity, isLoading } = useActivity(); if (isLoading) return
Loading...
; if (!activity?.length) return
No recent activity
; return (
{activity.slice(0, 20).map((item, i) => (
{item.name} {timeAgo(item.modified)}
))}
); } function kindColor(kind: string): string { switch (kind) { case 'human_task': return 'bg-accent'; case 'agent_task': return 'bg-warning'; case 'knowledge': return 'bg-success'; default: return 'bg-text-muted'; } } function timeAgo(iso: string): string { const ms = Date.now() - new Date(iso).getTime(); const mins = Math.floor(ms / 60000); if (mins < 1) return 'now'; if (mins < 60) return `${mins}m`; const hrs = Math.floor(mins / 60); if (hrs < 24) return `${hrs}h`; return `${Math.floor(hrs / 24)}d`; }