DeeptiYadav10648
Frontend version 1 complete
bcd59c6
"use client";
import { useEffect } from "react";
import { useRouter } from "next/navigation";
import { useAuth } from "@/components/AuthProvider";
import { Loader2 } from "lucide-react";
export default function AuthCallbackPage() {
const router = useRouter();
const { session, loading } = useAuth();
useEffect(() => {
if (!loading) {
if (session) {
const user = session.user;
const storedUser = localStorage.getItem("user");
if (storedUser) {
const parsed = JSON.parse(storedUser);
if (parsed.role === "admin") router.push("/admin");
else if (parsed.role === "worker") router.push("/worker");
else router.push("/user");
} else {
router.push("/user");
}
} else {
const timer = setTimeout(() => {
router.push("/signin?error=callback_timeout");
}, 3000);
return () => clearTimeout(timer);
}
}
}, [session, loading, router]);
return (
<div className="min-h-screen flex items-center justify-center bg-slate-50">
<div className="text-center">
<Loader2 className="w-10 h-10 animate-spin text-blue-600 mx-auto mb-4" />
<h2 className="text-xl font-bold text-slate-800">Authenticating...</h2>
<p className="text-slate-500">Please wait while we log you in.</p>
</div>
</div>
);
}