From 9c29530163b25cc4bd28faa5bcfd268fb60f9c86 Mon Sep 17 00:00:00 2001 From: bender Date: Wed, 11 Mar 2026 20:12:18 +0000 Subject: [PATCH] Add src/components/ProtectedRoute.tsx --- src/components/ProtectedRoute.tsx | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 src/components/ProtectedRoute.tsx 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 ||
Carregando...
; + } + + if (!isAuthenticated) { + return null; + } + + return <>{children}; +}