import { createRootRouteWithContext, Link, Outlet } from '@tanstack/react-router' import type { QueryClient } from '@tanstack/react-query' import { useTranslation } from 'react-i18next' import { LanguageSwitch } from '@nstart/ui' import { AuthBadge } from '@/auth/AuthBadge' import { useCanMutate } from '@/auth/useCanMutate' import { UpdateBanner } from '@/components/version/UpdateBanner' import { VersionBadge } from '@/components/version/VersionBadge' export const Route = createRootRouteWithContext<{ queryClient: QueryClient }>()({ component: RootLayout, }) const LANG_OPTIONS = [ { id: 'ru-RU', label: 'RU' }, { id: 'en-US', label: 'EN' }, ] function RootLayout() { const { t, i18n } = useTranslation() // Гость (anonymous) видит только ссылку на /dictionaries и /search. // Аудит, outbox, webhooks, drafts, reviews — admin-only страницы, требуют // JWT (backend SecurityConfig + admin role). Скрываем из top-nav чтобы // user не получал 401 toast при навигации. const canMutate = useCanMutate() return (
{t('app.title')}
i18n.changeLanguage(id)} />
) }