'use client' import type { TrainingStats, DeadlineInfo } from '@/lib/sdk/training/types' import { KPICard } from './KPICard' interface OverviewTabProps { stats: TrainingStats deadlines: DeadlineInfo[] escalationResult: { total_checked: number; escalated: number } | null onDismissEscalation: () => void } export function OverviewTab({ stats, deadlines, escalationResult, onDismissEscalation }: OverviewTabProps) { return (
{escalationResult && (
Eskalation abgeschlossen: {escalationResult.total_checked} Zuweisungen geprueft, {escalationResult.escalated} eskaliert
)}
= 80 ? 'green' : stats.completion_rate >= 50 ? 'yellow' : 'red'} /> 0 ? 'red' : 'green'} />
5 ? 'yellow' : 'green'} />
{/* Status Bar */}

Status-Verteilung

{stats.total_assignments > 0 && (
{stats.completed_count > 0 &&
} {stats.in_progress_count > 0 &&
} {stats.pending_count > 0 &&
} {stats.overdue_count > 0 &&
}
)}
Abgeschlossen In Bearbeitung Ausstehend Ueberfaellig
{/* Deadlines */} {deadlines.length > 0 && (

Naechste Deadlines

{deadlines.slice(0, 5).map(d => (
{d.module_title} ({d.user_name})
{d.days_left <= 0 ? `${Math.abs(d.days_left)} Tage ueberfaellig` : `${d.days_left} Tage`}
))}
)}
) }