'use client'; import { useEffect } from 'react'; import { usePathname, useRouter } from 'next/navigation'; import { useAuth } from '@/components/id/auth-provider'; export function useRequireAuth() { const router = useRouter(); const pathname = usePathname(); const { user, isLoading, isApiReady, isSessionReady, isPinLocked, hasStoredSession } = useAuth(); useEffect(() => { if (isLoading || !isApiReady || !isSessionReady) return; if (user || isPinLocked || hasStoredSession) return; if (pathname.startsWith('/auth/')) return; router.replace('/auth/login'); }, [hasStoredSession, isApiReady, isLoading, isPinLocked, isSessionReady, pathname, router, user]); return { user, isLoading, isPinLocked, isApiReady, isSessionReady, isReady: !isLoading && isApiReady && isSessionReady && Boolean(user || isPinLocked || hasStoredSession) }; }