diff --git a/frontend/src/pages/QuizPage.jsx b/frontend/src/pages/QuizPage.jsx index 1acef6e..f2df980 100644 --- a/frontend/src/pages/QuizPage.jsx +++ b/frontend/src/pages/QuizPage.jsx @@ -207,19 +207,21 @@ export default function QuizPage() { if (hasStarted.current) return hasStarted.current = true setSelectedVoice(voice) - setQuizMode(mode) + // DON'T set quizMode yet — wait for data to load first + // (prevents mobile race condition where quiz renders without correct_answer) try { const quizRes = await api.get(`/quizzes/${id}${mode === 'study' ? '?study=true' : ''}`) setQuiz(quizRes.data) const attemptRes = await api.post(`/attempts/start?quiz_id=${id}`) setAttemptId(attemptRes.data.id) - // Timer: use custom input → quiz default → no timer const mins = timerMinutes || quizRes.data.time_limit_minutes if (mode === 'exam' && mins) { const secs = mins * 60 setTimeLeft(secs); setTotalTime(secs) } + // NOW set mode — quiz data is fully loaded, safe to render + setQuizMode(mode) } catch { navigate('/') } }