'use client'; import { useEffect } from 'react'; import { useRouter, usePathname } from 'next/navigation'; import { useAuth } from '@/lib/auth'; import { getToken } from '@/lib/api'; import Sidebar from './sidebar'; export default function AuthGate({ children }: { children: React.ReactNode }) { const { user, fetchMe } = useAuth(); const router = useRouter(); const pathname = usePathname(); const isLogin = pathname === '/login'; useEffect(() => { if (!getToken() && !isLogin) { router.replace('/login'); return; } if (getToken() && !user) { fetchMe(); } }, [pathname]); if (isLogin) return <>{children}; if (!getToken()) return null; return (
{children}
); }