import { Navigate, Outlet, useLocation } from 'react-router-dom'
import { useIsAuthenticated } from '@features/auth'
import { ROUTES } from '@shared/config/routes'
import { Spinner } from '@shared/ui'

export function ProtectedRoute() {
  const { isAuthenticated, isLoading } = useIsAuthenticated()
  const location = useLocation()

  if (isLoading) return <Spinner overlay size="lg" label="Загрузка" />
  if (!isAuthenticated) return <Navigate to={ROUTES.LOGIN} state={{ from: location }} replace />
  return <Outlet />
}
