'use client' import type { TrainingAssignment, QuizSubmitResponse } from '@/lib/sdk/training/types' interface QuizQuestion { id: string question: string options: string[] difficulty: string } function formatTimer(seconds: number): string { const m = Math.floor(seconds / 60) const s = seconds % 60 return `${m}:${s.toString().padStart(2, '0')}` } interface QuizViewProps { questions: QuizQuestion[] answers: Record quizResult: QuizSubmitResponse | null quizSubmitting: boolean quizTimer: number selectedAssignment: TrainingAssignment | null certGenerating: boolean onAnswerChange: (questionId: string, optionIndex: number) => void onSubmitQuiz: () => void onRetryQuiz: () => void onGenerateCertificate: (assignmentId: string) => void } export function QuizView({ questions, answers, quizResult, quizSubmitting, quizTimer, selectedAssignment, certGenerating, onAnswerChange, onSubmitQuiz, onRetryQuiz, onGenerateCertificate, }: QuizViewProps) { if (questions.length === 0) { return
Starten Sie ein Quiz aus dem Schulungsinhalt-Tab
} if (quizResult) { return (
{quizResult.passed ? '\u2705' : '\u274C'}

{quizResult.passed ? 'Bestanden!' : 'Nicht bestanden'}

{quizResult.correct_count} von {quizResult.total_count} richtig ({Math.round(quizResult.score)}%)

Bestehensgrenze: {quizResult.threshold}% | Zeit: {formatTimer(quizTimer)}

{quizResult.passed && selectedAssignment && !selectedAssignment.certificate_id && ( )} {!quizResult.passed && ( )}
) } return (

Quiz — {selectedAssignment?.module_title}

{formatTimer(quizTimer)}
{questions.map((q, idx) => (

Frage {idx + 1}.{q.question}

{q.options.map((opt, oi) => ( ))}
))}
) }