//File: frontend/app/_auth/useAuthGuard.jsx 'use client'; import { useEffect, useState } from 'react'; import { usePathname, useRouter } from 'next/navigation'; import Auth from './AuthDriver'; export default function UseAuthGuard({ children }) { const [ok, setOk] = useState(false); const router = useRouter(); const pathname = usePathname(); useEffect(() => { let alive = true; (async () => { const me = await Auth.me().catch(() => ({ ok: false })); if (alive && me?.ok) setOk(true); else if (alive) router.replace(`/login?next=${encodeURIComponent(pathname || '/')}`); })(); return () => { alive = false; }; }, [pathname, router]); return ok ? <>{children} : null; }