Add nonce parameter to QuizPage and update QuizRunner key
This commit is contained in:
@@ -5,9 +5,10 @@ import QuizRunner from '../components/QuizRunner';
|
|||||||
export default function QuizPage() {
|
export default function QuizPage() {
|
||||||
const [params] = useSearchParams();
|
const [params] = useSearchParams();
|
||||||
|
|
||||||
const { mode, entryId } = useMemo(() => {
|
const { mode, entryId, nonce } = useMemo(() => {
|
||||||
const modeParam = params.get('mode');
|
const modeParam = params.get('mode');
|
||||||
const idParam = params.get('id');
|
const idParam = params.get('id');
|
||||||
|
const nonceParam = params.get('nonce') || '';
|
||||||
let decodedId: string | undefined;
|
let decodedId: string | undefined;
|
||||||
if (idParam) {
|
if (idParam) {
|
||||||
try {
|
try {
|
||||||
@@ -16,11 +17,13 @@ export default function QuizPage() {
|
|||||||
decodedId = idParam;
|
decodedId = idParam;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return { mode: modeParam, entryId: decodedId };
|
return { mode: modeParam, entryId: decodedId, nonce: nonceParam };
|
||||||
}, [params]);
|
}, [params]);
|
||||||
|
|
||||||
const defaultMode = mode === 'entry' ? 'single' : 'all';
|
const defaultMode = mode === 'entry' ? 'single' : 'all';
|
||||||
const autoStart = true;
|
const autoStart = true;
|
||||||
|
|
||||||
return <QuizRunner defaultMode={defaultMode} defaultEntryId={entryId} autoStart={autoStart} />;
|
const runnerKey = `${defaultMode}-${entryId || 'all'}-${nonce}`;
|
||||||
|
|
||||||
|
return <QuizRunner key={runnerKey} defaultMode={defaultMode} defaultEntryId={entryId} autoStart={autoStart} />;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user