Files
examjam-frontend/components/ExamGuard.tsx
shafin-r 108d34988d fix(nav): fix exam flow navigation
chore(zustand): refactor auth code for zustand store
2025-09-09 20:45:30 +06:00

26 lines
783 B
TypeScript

"use client";
import { useNavStore } from "@/stores/navStore";
import { useRouter, usePathname } from "next/navigation";
import { useEffect } from "react";
export function ExamGuard({ children }: { children: React.ReactNode }) {
const { examSubmitted, resultsDone } = useNavStore();
const router = useRouter();
const pathname = usePathname();
useEffect(() => {
// Prevent access to /exam after submission
if (pathname === "/exam/exam-screen" && examSubmitted) {
router.replace("/results");
}
// Prevent access to /results after done
if (pathname === "/exam/results" && resultsDone) {
router.replace("/categories"); // or wherever you want them to go
}
}, [pathname, examSubmitted, resultsDone, router]);
return <>{children}</>;
}