Update QuizRunner to accept and use autoStart prop

This commit is contained in:
2026-01-07 23:44:45 +01:00
parent 19eef3c0e3
commit 76bed96151

View File

@@ -10,6 +10,7 @@ const TOTAL_QUESTIONS = 10;
interface QuizRunnerProps { interface QuizRunnerProps {
defaultMode?: Mode; defaultMode?: Mode;
defaultEntryId?: string; defaultEntryId?: string;
autoStart?: boolean;
} }
interface TargetHit { interface TargetHit {
@@ -194,7 +195,7 @@ function ExplanationPanel({ question, targets }: { question: QuizQuestionWithEnt
); );
} }
export default function QuizRunner({ defaultMode = 'all', defaultEntryId }: QuizRunnerProps) { export default function QuizRunner({ defaultMode = 'all', defaultEntryId, autoStart }: QuizRunnerProps) {
const [entries, setEntries] = useState<EntrySummary[]>([]); const [entries, setEntries] = useState<EntrySummary[]>([]);
const [loadingEntries, setLoadingEntries] = useState(true); const [loadingEntries, setLoadingEntries] = useState(true);
const [mode, setMode] = useState<Mode>(defaultMode); const [mode, setMode] = useState<Mode>(defaultMode);
@@ -223,6 +224,13 @@ export default function QuizRunner({ defaultMode = 'all', defaultEntryId }: Quiz
} }
}, [defaultEntryId]); }, [defaultEntryId]);
useEffect(() => {
if (autoStart && defaultEntryId && entries.length > 0) {
startQuiz();
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [autoStart, defaultEntryId, entries.length]);
const currentQuestion = useMemo(() => questions[currentIndex], [questions, currentIndex]); const currentQuestion = useMemo(() => questions[currentIndex], [questions, currentIndex]);
const resetQuestionState = () => { const resetQuestionState = () => {