'use client'; import { useEffect } from 'react'; import { useRouter, usePathname } from 'next/navigation'; import { useAuth } from '@/lib/auth-context'; const PUBLIC_PATHS = ['/login']; export function AuthGuard({ children }: { children: React.ReactNode }) { const { isAuthenticated, isLoading } = useAuth(); const router = useRouter(); const pathname = usePathname(); const isPublicPath = PUBLIC_PATHS.includes(pathname); useEffect(() => { if (isLoading) return; if (!isAuthenticated && !isPublicPath) { router.push('/login'); } else if (isAuthenticated && isPublicPath) { router.push('/'); } }, [isAuthenticated, isLoading, isPublicPath, router]); if (isLoading) { return (
progress_activity
); } if (!isAuthenticated && !isPublicPath) { return null; } if (isAuthenticated && isPublicPath) { return null; } return <>{children}; }