import Button from "@/components/Low/Button"; import Input from "@/components/Low/Input"; import {Module} from "@/interfaces"; import useExamStore from "@/stores/examStore"; import {getExamById} from "@/utils/exams"; import {MODULE_ARRAY} from "@/utils/moduleUtils"; import {RadioGroup} from "@headlessui/react"; import clsx from "clsx"; import {capitalize} from "lodash"; import {useRouter} from "next/router"; import {FormEvent, useState} from "react"; import {toast} from "react-toastify"; export default function ExamLoader() { const [selectedModule, setSelectedModule] = useState(); const [examId, setExamId] = useState(); const [isLoading, setIsLoading] = useState(false); const setExams = useExamStore((state) => state.setExams); const setSelectedModules = useExamStore((state) => state.setSelectedModules); const router = useRouter(); const loadExam = async (e?: FormEvent) => { if (e) e.preventDefault(); setIsLoading(true); if (selectedModule && examId) { const exam = await getExamById(selectedModule, examId.trim()); if (!exam) { toast.error("Unknown Exam ID! Please make sure you selected the right module and entered the right exam ID", { toastId: "invalid-exam-id", }); setIsLoading(false); return; } setExams([exam]); setSelectedModules([selectedModule]); router.push("/exercises"); } setIsLoading(false); }; return (
{MODULE_ARRAY.map((module) => ( {({checked}) => ( {capitalize(module)} )} ))}
); }