import { Navigate, Route, RouterProvider, createBrowserRouter, createRoutesFromElements, useLocation, useNavigate, useRouteLoaderData } from 'react-router-dom' import Layout from './components/Layout' import Index from './pages/Index' import Login from './pages/Login' import Register from './pages/Register' import NoMatch from './pages/NoMatch' import { UserProvider } from './store/user' import { ajax } from './utils/fetch' import Engine from './pages/Engine' import Quests from './pages/Quests' const router = createBrowserRouter( createRoutesFromElements( } loader={async () => ajax("/api/user").catch(x => {console.log(x); return null})} > } /> } loader={() => ajax("/api/games").catch(x => {console.log(x); return null})} /> } /> } /> } loader={({ params }) => ajax(`/api/engine/${params.gameId}`).catch(x => {console.log(x); return null})} /> {/* } loader={() => ajax(`/api/admin/games`)} /> } loader={() => ({ title: "Новая игра", tasks: [] })} /> */} } /> ) ); function App() { return ( ) } function Auth({ children }) { const baseUser = useRouteLoaderData("root") const { user } = UserProvider.useContainer(); const location = useLocation(); if (!user && !baseUser) { return ; } return children; } export default App