import React, { useState } from 'react'; import { Button } from '../../ui/button'; import { Quiz } from '../../../types'; import { X, CheckCircle, AlertCircle, HelpCircle } from 'lucide-react'; interface QuizModalProps { quiz: Quiz; onClose: () => void; onComplete: (score: number) => void; } export const QuizModal: React.FC = ({ quiz, onClose, onComplete }) => { const [currentQuestionIndex, setCurrentQuestionIndex] = useState(0); const [selectedAnswers, setSelectedAnswers] = useState(new Array(quiz.questions.length).fill(-1)); const [showResults, setShowResults] = useState(false); const currentQuestion = quiz.questions[currentQuestionIndex]; const isLastQuestion = currentQuestionIndex === quiz.questions.length - 1; const handleAnswerSelect = (index: number) => { const newAnswers = [...selectedAnswers]; newAnswers[currentQuestionIndex] = index; setSelectedAnswers(newAnswers); }; const handleNext = () => { if (currentQuestionIndex < quiz.questions.length - 1) { setCurrentQuestionIndex(currentQuestionIndex + 1); } else { setShowResults(true); } }; const calculateScore = () => { let correct = 0; quiz.questions.forEach((q, i) => { if (selectedAnswers[i] === q.correctIndex) correct++; }); return Math.round((correct / quiz.questions.length) * 100); }; const score = calculateScore(); const passed = score >= quiz.passingScore; const handleFinish = () => { onComplete(score); onClose(); }; if (showResults) { return (
{passed ? (
) : (
)}

{passed ? 'Assessment Passed!' : 'Try Again'}

You scored {score}%. {passed ? " Great job!" : ` You need ${quiz.passingScore}% to pass.`}

); } return (
{/* Header */}

{quiz.title}

{/* Progress */}
{/* Question Area */}
Question {currentQuestionIndex + 1} of {quiz.questions.length}

{currentQuestion.question}

{currentQuestion.options.map((option, idx) => ( ))}
{/* Footer */}
Passing Score: {quiz.passingScore}%
); };