Files
breakpilot-lehrer/website/app/admin/quality/_components/SchedulerStatusCard.tsx
Benjamin Admin 0b37c5e692 [split-required] Split website + studio-v2 monoliths (Phase 3 continued)
Website (14 monoliths split):
- compliance/page.tsx (1,519 → 9), docs/audit (1,262 → 20)
- quality (1,231 → 16), alerts (1,203 → 10), docs (1,202 → 11)
- i18n.ts (1,173 → 8 language files)
- unity-bridge (1,094 → 12), backlog (1,087 → 6)
- training (1,066 → 8), rag (1,063 → 8)
- Deleted index_original.ts (4,899 LOC dead backup)

Studio-v2 (5 monoliths split):
- meet/page.tsx (1,481 → 9), messages (1,166 → 9)
- AlertsB2BContext.tsx (1,165 → 5 modules)
- alerts-b2b/page.tsx (1,019 → 6), korrektur/archiv (1,001 → 6)

All existing imports preserved. Zero new TypeScript errors.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-24 17:52:36 +02:00

41 lines
1.1 KiB
TypeScript

export function SchedulerStatusCard({
title,
status,
description,
icon,
}: {
title: string
status: 'active' | 'inactive' | 'warning' | 'unknown'
description: string
icon: React.ReactNode
}) {
const statusColors = {
active: 'bg-emerald-100 border-emerald-200 text-emerald-700',
inactive: 'bg-slate-100 border-slate-200 text-slate-700',
warning: 'bg-amber-100 border-amber-200 text-amber-700',
unknown: 'bg-slate-100 border-slate-200 text-slate-500',
}
const statusBadges = {
active: 'bg-emerald-500',
inactive: 'bg-slate-400',
warning: 'bg-amber-500',
unknown: 'bg-slate-300',
}
return (
<div className={`rounded-xl border p-5 ${statusColors[status]}`}>
<div className="flex items-start gap-4">
<div className="flex-shrink-0">{icon}</div>
<div className="flex-1">
<div className="flex items-center gap-2">
<h4 className="font-semibold">{title}</h4>
<span className={`w-2 h-2 rounded-full ${statusBadges[status]}`} />
</div>
<p className="text-sm mt-1 opacity-80">{description}</p>
</div>
</div>
</div>
)
}