diff --git a/apps/web/src/components/analytics/analytics-activity-list.tsx b/apps/web/src/components/analytics/analytics-activity-list.tsx new file mode 100644 index 0000000..0f9c985 --- /dev/null +++ b/apps/web/src/components/analytics/analytics-activity-list.tsx @@ -0,0 +1,54 @@ +import { AlertTriangle, CheckCircle, Info } from 'lucide-react' + +import { cn } from '@evobgp/ui/lib/utils' + +import { StatusBadge } from '@/components/status-badge' +import type { PlatformActivityItem } from '@/lib/metrics' + +const KIND_ICON = { + job: Info, + revision: CheckCircle, + network: AlertTriangle, +} as const + +const KIND_ICON_CLASS = { + job: 'text-info', + revision: 'text-success', + network: 'text-warning', +} as const + +export function AnalyticsActivityList({ + items, + className, +}: { + items: PlatformActivityItem[] + className?: string +}) { + if (items.length === 0) { + return
Нет недавних событий
+ } + + return ( +{item.message}
+{item.label}
+{item.value}
+ {item.delta ? ( +
+
+ {loading ? '—' : `${utilization}%`} +
+{loading ? '…' : `${deltaLabel} · снимок live`}
++ Активных задач: {loading ? '—' : queued} +
+Загрузка…
+ ) : ( +