Updated and fixed the level generation

This commit is contained in:
Tiago Ribeiro
2024-07-26 23:43:23 +01:00
parent 8f6639b7fc
commit a6160c3cf0
4 changed files with 19 additions and 12 deletions

View File

@@ -71,6 +71,12 @@ export default function Level({exam, showSolutions = false, onFinish}: Props) {
setUserSolutions([...userSolutions.filter((x) => x.exercise !== solution.exercise), {...solution, module: "level", exam: exam.id}]);
}
if (storeQuestionIndex > 0) {
const exercise = getExercise();
setMultipleChoicesDone((prev) => [...prev.filter((x) => x.id !== exercise.id), {id: exercise.id, amount: storeQuestionIndex}]);
}
setStoreQuestionIndex(0);
if (exerciseIndex + 1 < exam.parts[partIndex].exercises.length && !hasExamEnded) {
setExerciseIndex(exerciseIndex + 1);
return;
@@ -78,7 +84,7 @@ export default function Level({exam, showSolutions = false, onFinish}: Props) {
if (partIndex + 1 < exam.parts.length && !hasExamEnded) {
setPartIndex(partIndex + 1);
setExerciseIndex(showSolutions ? 0 : -1);
setExerciseIndex(!!exam.parts[partIndex + 1].context ? -1 : 0);
return;
}
@@ -94,12 +100,6 @@ export default function Level({exam, showSolutions = false, onFinish}: Props) {
return;
}
if (storeQuestionIndex > 0) {
const exercise = getExercise();
setMultipleChoicesDone((prev) => [...prev.filter((x) => x.id !== exercise.id), {id: exercise.id, amount: storeQuestionIndex}]);
}
setStoreQuestionIndex(0);
setHasExamEnded(false);
if (solution) {
@@ -114,6 +114,11 @@ export default function Level({exam, showSolutions = false, onFinish}: Props) {
if (solution) {
setUserSolutions([...userSolutions.filter((x) => x.exercise !== solution.exercise), {...solution, module: "level", exam: exam.id}]);
}
if (storeQuestionIndex > 0) {
const exercise = getExercise();
setMultipleChoicesDone((prev) => [...prev.filter((x) => x.id !== exercise.id), {id: exercise.id, amount: storeQuestionIndex}]);
}
setStoreQuestionIndex(0);
setExerciseIndex(exerciseIndex - 1);