ENCOA-253, ENCOA-248, ENCOA-246
This commit is contained in:
@@ -2,8 +2,9 @@ import Button from "@/components/Low/Button";
|
||||
import Modal from "@/components/Modal";
|
||||
import { Exam, LevelExam, MultipleChoiceExercise, ShuffleMap } from "@/interfaces/exam";
|
||||
import useExamStore, { usePersistentExamStore } from "@/stores/exam";
|
||||
import { defaultExamUserSolutions } from "@/utils/exams";
|
||||
import clsx from "clsx";
|
||||
import { useMemo, useState } from "react";
|
||||
import { useEffect, useMemo, useState } from "react";
|
||||
import { BsFillGrid3X3GapFill } from "react-icons/bs";
|
||||
|
||||
interface Props {
|
||||
@@ -18,7 +19,7 @@ const MCQuestionGrid: React.FC<Props> = ({ exam, showSolutions, runOnClick, prev
|
||||
|
||||
const examState = useExamStore((state) => state);
|
||||
const persistentExamState = usePersistentExamStore((state) => state);
|
||||
|
||||
|
||||
const {
|
||||
userSolutions,
|
||||
partIndex: sectionIndex,
|
||||
@@ -27,7 +28,10 @@ const MCQuestionGrid: React.FC<Props> = ({ exam, showSolutions, runOnClick, prev
|
||||
|
||||
const currentExercise = useMemo(() => (exam as LevelExam).parts[sectionIndex!].exercises[exerciseIndex] as MultipleChoiceExercise, [exam, exerciseIndex, sectionIndex])
|
||||
const userSolution = useMemo(() => userSolutions!.find((x) => x.exercise.toString() == currentExercise.id.toString())!, [currentExercise.id, userSolutions])
|
||||
const answeredQuestions = useMemo(() => new Set(userSolution.solutions.map(sol => sol.question.toString())), [userSolution.solutions])
|
||||
const answeredQuestions = useMemo(() =>
|
||||
userSolution ? new Set(userSolution.solutions.map(sol => sol.question.toString())) : new Set(),
|
||||
[userSolution]
|
||||
);
|
||||
const exerciseOffset = useMemo(() => Number(currentExercise.questions[0].id), [currentExercise.questions])
|
||||
const lastExercise = useMemo(() => exerciseOffset + (currentExercise.questions.length - 1),
|
||||
[currentExercise.questions.length, exerciseOffset]);
|
||||
|
||||
Reference in New Issue
Block a user