-
-
+
);
@@ -252,11 +219,11 @@ export default function ExamPage() {
) : (
- {questions?.map((question) => (
+ {questions?.map((q) => (
))}
diff --git a/app/exam/pretest/page.tsx b/app/exam/pretest/page.tsx
index ad73818..d9c1290 100644
--- a/app/exam/pretest/page.tsx
+++ b/app/exam/pretest/page.tsx
@@ -7,6 +7,7 @@ import DestructibleAlert from "@/components/DestructibleAlert";
import BackgroundWrapper from "@/components/BackgroundWrapper";
import { API_URL } from "@/lib/auth";
import { useExam } from "@/context/ExamContext";
+import { Exam } from "@/types/exam";
interface Metadata {
metadata: {
@@ -20,7 +21,7 @@ interface Metadata {
export default function PretestPage() {
const router = useRouter();
const searchParams = useSearchParams();
- const [examData, setExamData] = useState();
+ const [examData, setExamData] = useState();
const { startExam, setCurrentExam } = useExam();
// Get params from URL search params
@@ -41,14 +42,13 @@ export default function PretestPage() {
const questionResponse = await fetch(`${API_URL}/mock/${id}`, {
method: "GET",
});
- const data = await questionResponse.json();
- console.log(data);
-
if (!questionResponse.ok) {
throw new Error("Failed to fetch questions");
}
- setExamData(data);
+ const data = await questionResponse.json();
const fetchedMetadata: Metadata = data;
+
+ setExamData(data);
setMetadata(fetchedMetadata);
} catch (error) {
console.error(error);
@@ -79,6 +79,25 @@ export default function PretestPage() {
);
}
+ const { isHydrated, isInitialized, currentExam } = useExam();
+
+ useEffect(() => {
+ console.log(
+ "hydrated:",
+ isHydrated,
+ "initialized:",
+ isInitialized,
+ "exam:",
+ currentExam
+ );
+ }, [isHydrated, isInitialized, currentExam]);
+
+ function handleStartExam() {
+ console.log(id);
+ setCurrentExam(examData);
+ startExam();
+ router.push(`/exam/${id}?time=${metadata?.metadata.duration}`);
+ }
return (
@@ -176,11 +195,7 @@ export default function PretestPage() {