diff --git a/src/components/ProtectedRoute.tsx b/src/components/ProtectedRoute.tsx new file mode 100644 index 0000000..5eb03f2 --- /dev/null +++ b/src/components/ProtectedRoute.tsx @@ -0,0 +1,31 @@ +"use client"; + +import { useAuth } from "@/hooks/useAuth"; +import { useEffect } from "react"; +import { useRouter } from "next/navigation"; + +interface ProtectedRouteProps { + children: React.ReactNode; + fallback?: React.ReactNode; +} + +export function ProtectedRoute({ children, fallback }: ProtectedRouteProps) { + const { isAuthenticated, isLoading } = useAuth(); + const router = useRouter(); + + useEffect(() => { + if (!isLoading && !isAuthenticated) { + router.push("/login"); + } + }, [isLoading, isAuthenticated, router]); + + if (isLoading) { + return fallback ||