'use client' import { ReactNode, useEffect } from 'react' import { useRouter } from 'next/navigation' import { useLocale } from 'next-intl' import { useAuth } from './auth-provider' import { Box, CircularProgress, Typography } from '@mui/material' interface ProtectedRouteProps { children: ReactNode fallback?: ReactNode } export function ProtectedRoute({ children, fallback }: ProtectedRouteProps) { const { isAuthenticated, isLoading } = useAuth() const router = useRouter() const locale = useLocale() useEffect(() => { if (!isLoading && !isAuthenticated) { router.push(`/${locale}/login`) } }, [isAuthenticated, isLoading, router, locale]) if (isLoading) { return fallback || ( Loading... ) } if (!isAuthenticated) { return null } return <>{children} }