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