import React from 'react'; import ReactDOM from 'react-dom/client'; import { BrowserRouter, Routes, Route } from 'react-router-dom'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import { Toaster } from 'react-hot-toast'; import { Layout } from './components/Layout'; import { Home } from './pages/Home'; import { Search } from './pages/Search'; import { Check } from './pages/Check'; import { Bibliography } from './pages/Bibliography'; import { Cabinet } from './pages/Cabinet'; import { Settings } from './pages/Settings'; import { Task } from './pages/Task'; import { Pricing } from './pages/Pricing'; import { Login } from './pages/Login'; import { Register } from './pages/Register'; import { OAuthCallback } from './pages/OAuthCallback'; import { VerifyEmail } from './pages/VerifyEmail'; import { AdminLayout } from './pages/admin/AdminLayout'; import { Dashboard } from './pages/admin/Dashboard'; import { Users as AdminUsers } from './pages/admin/Users'; import { Works as AdminWorks } from './pages/admin/Works'; import { Documents as AdminDocuments } from './pages/admin/Documents'; import { Storage as AdminStorage } from './pages/admin/Storage'; import { Sources as AdminSources } from './pages/admin/Sources'; import { Staging as AdminStaging } from './pages/admin/Staging'; import './index.css'; const queryClient = new QueryClient({ defaultOptions: { queries: { staleTime: 30000, retry: 1, }, }, }); // Маршруты пользовательской части (обёрнуты в общий Layout) function PublicApp() { return ( } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); } ReactDOM.createRoot(document.getElementById('root')!).render( {/* Админка — собственный layout, защита по is_admin + коду сессии */} } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Всё остальное — пользовательская часть */} } /> );