'use client' import type { TrainingAssignment } from '@/lib/sdk/training/types' import { STATUS_LABELS, STATUS_COLORS } from '@/lib/sdk/training/types' export default function AssignmentsTab({ assignments, statusFilter, onStatusFilterChange, onAssignmentClick, }: { assignments: TrainingAssignment[] statusFilter: string onStatusFilterChange: (v: string) => void onAssignmentClick: (assignment: TrainingAssignment) => void }) { return (
{assignments.length} Zuweisungen
{assignments.length === 0 ? (
Keine Zuweisungen gefunden.
) : (
{assignments.map(a => { const colors = STATUS_COLORS[a.status] const deadline = new Date(a.deadline) const isOverdue = deadline < new Date() && a.status !== 'completed' return ( onAssignmentClick(a)} className="hover:bg-gray-50 cursor-pointer" > ) })}
Nutzer Modul Status Fortschritt Frist Quiz
{a.user_name}
{a.user_email}
{a.module_code ?? a.module_id.slice(0, 8)} {a.module_title &&
{a.module_title}
}
{STATUS_LABELS[a.status]}
{a.progress_percent}%
{deadline.toLocaleDateString('de-DE')} {a.quiz_score != null ? ( {Math.round(a.quiz_score)}% {a.quiz_passed ? '✓' : '✗'} ) : ( )}
)}
) }