riseup-squad20/susconecta/components/ProtectedRoute.tsx
2025-09-21 16:58:18 -03:00

40 lines
1.1 KiB
TypeScript

'use client'
import { useEffect } from 'react'
import { useRouter } from 'next/navigation'
import { useAuth } from '@/hooks/useAuth'
interface ProtectedRouteProps {
children: React.ReactNode
}
export default function ProtectedRoute({ children }: ProtectedRouteProps) {
const { isAuthenticated, checkAuth } = useAuth()
const router = useRouter()
useEffect(() => {
// Verificar autenticação sempre que o componente montar
checkAuth()
}, [checkAuth])
useEffect(() => {
if (!isAuthenticated) {
console.log('Usuário não autenticado, redirecionando para login...')
router.push('/login')
} else {
console.log('Usuário autenticado!')
}
}, [isAuthenticated, router])
if (!isAuthenticated) {
return (
<div className="min-h-screen flex items-center justify-center">
<div className="text-center">
<div className="animate-spin rounded-full h-12 w-12 border-b-2 border-blue-600 mx-auto"></div>
<p className="mt-4 text-gray-600">Redirecionando para login...</p>
</div>
</div>
)
}
return <>{children}</>
}