import { useEffect } from 'react'; import { Outlet } from 'react-router-dom'; import { useAuth } from '@/lib/AuthContext'; import UserNotRegisteredError from '@/components/UserNotRegisteredError'; const DefaultFallback = () => (
); export default function ProtectedRoute({ fallback = , unauthenticatedElement }) { const { isAuthenticated, isLoadingAuth, authChecked, authError, checkUserAuth } = useAuth(); useEffect(() => { if (!authChecked && !isLoadingAuth) { checkUserAuth(); } }, [authChecked, isLoadingAuth, checkUserAuth]); if (isLoadingAuth || !authChecked) { return fallback; } if (authError) { if (authError.type === 'user_not_registered') { return ; } return unauthenticatedElement; } if (!isAuthenticated) { return unauthenticatedElement; } return ; }