/* eslint-disable @next/next/no-img-element */ import Head from "next/head"; import Navbar from "@/components/Navbar"; import {useEffect, useState} from "react"; import {Module} from "@/interfaces"; // TODO: Remove this import import JSON_USER from "@/demo/user.json"; import JSON_READING from "@/demo/reading.json"; import JSON_LISTENING from "@/demo/listening.json"; import Selection from "@/exams/Selection"; import Reading from "@/exams/Reading"; import {Exam, ListeningExam, ReadingExam} from "@/interfaces/exam"; import Listening from "@/exams/Listening"; export default function Home() { const [selectedModules, setSelectedModules] = useState([]); const [moduleIndex, setModuleIndex] = useState(0); const [exam, setExam] = useState(); useEffect(() => { if (selectedModules.length > 0 && moduleIndex < selectedModules.length) { setExam(getExam(selectedModules[moduleIndex])); } }, [selectedModules, moduleIndex]); const getExam = (module: Module): Exam | undefined => { switch (module) { case "reading": return JSON_READING as ReadingExam; case "listening": return JSON_LISTENING as ListeningExam; } return undefined; }; const renderScreen = () => { if (selectedModules.length === 0) { return ; } if (moduleIndex >= selectedModules.length) { return <>Finished!; } if (exam && exam.module === "reading") { return setModuleIndex((prev) => prev + 1)} />; } if (exam && exam.module === "listening") { return setModuleIndex((prev) => prev + 1)} />; } return <>Loading...; }; return ( <> Create Next App
{renderScreen()}
); }