'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`}
))}
)}
)
}