import { Navigate, Outlet, useLocation } from 'react-router'; import { ErrorNotice, LoadingNotice } from '@/components/ui/ErrorNotice'; import { useCurrentUser } from '@/lib/hooks'; import { isUnauthorized } from '@/lib/http'; interface AuthGuardProps { /** * Если `true`, пользователей с незавершённым онбордингом пускаем внутрь * (нужно для /onboarding и /settings). */ allowIncompleteOnboarding?: boolean; } /** * Защита маршрутов: проверяет GET /users/@me. * Неавторизованных отправляет на /login, не прошедших онбординг — на /onboarding. */ export function AuthGuard({ allowIncompleteOnboarding = false }: AuthGuardProps) { const location = useLocation(); const currentUser = useCurrentUser(); if (currentUser.isPending) { return (