ENCOA-253, ENCOA-248, ENCOA-246
This commit is contained in:
@@ -8,29 +8,38 @@ import { LevelExam, ListeningExam, ReadingExam, SpeakingExam, WritingExam } from
|
||||
import { User } from "@/interfaces/user";
|
||||
import { usePersistentExamStore } from "@/stores/exam";
|
||||
import clsx from "clsx";
|
||||
import { useEffect } from "react";
|
||||
|
||||
// TODO: perms
|
||||
|
||||
const Popout: React.FC<{ user: User }> = ({ user }) => {
|
||||
const state = usePersistentExamStore((state) => state);
|
||||
const { bgColor, exam, partIndex, setUserSolutions } = usePersistentExamStore();
|
||||
usePersistentStorage(usePersistentExamStore);
|
||||
|
||||
useEffect(() => {
|
||||
return () => {
|
||||
setUserSolutions([]);
|
||||
}
|
||||
// eslint-disable-next-line react-hooks/exhaustive-deps
|
||||
}, [])
|
||||
|
||||
return (
|
||||
<div className={`relative flex w-full min-h-screen p-4 shadow-md items-center rounded-2xl ${state.bgColor}`}>
|
||||
<div className={`relative flex w-full min-h-screen p-4 shadow-md items-center rounded-2xl ${bgColor}`}>
|
||||
<div className={clsx("relative flex p-20 justify-center flex-1")}>
|
||||
{state.exam?.module == "level" && state.exam.parts && state.partIndex >= 0 &&
|
||||
<Level exam={state.exam as LevelExam} preview={true} />
|
||||
{exam?.module == "level" && exam.parts && partIndex >= 0 &&
|
||||
<Level exam={exam as LevelExam} preview={true} />
|
||||
}
|
||||
{state.exam?.module == "writing" && state.exam.exercises && state.partIndex >= 0 &&
|
||||
<Writing exam={state.exam as WritingExam} preview={true} />
|
||||
{exam?.module == "writing" && exam.exercises && partIndex >= 0 &&
|
||||
<Writing exam={exam as WritingExam} preview={true} />
|
||||
}
|
||||
{state.exam?.module == "reading" && state.exam.parts.length > 0 &&
|
||||
<Reading exam={state.exam as ReadingExam} preview={true} />
|
||||
{exam?.module == "reading" && exam.parts.length > 0 &&
|
||||
<Reading exam={exam as ReadingExam} preview={true} />
|
||||
}
|
||||
{state.exam?.module == "listening" && state.exam.parts.length > 0 &&
|
||||
<Listening exam={state.exam as ListeningExam} preview={true} />
|
||||
{exam?.module == "listening" && exam.parts.length > 0 &&
|
||||
<Listening exam={exam as ListeningExam} preview={true} />
|
||||
}
|
||||
{state.exam?.module == "speaking" && state.exam.exercises.length > 0 &&
|
||||
<Speaking exam={state.exam as SpeakingExam} preview={true} />
|
||||
{exam?.module == "speaking" && exam.exercises.length > 0 &&
|
||||
<Speaking exam={exam as SpeakingExam} preview={true} />
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user