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 Team from './pages/Team' import Teams from './pages/Teams' import { UserProvider } from './store/user' import { ajax } from './utils/fetch' import TeamNew from './pages/TeamNew' const router = createBrowserRouter( createRoutesFromElements( } loader={async () => ajax("/api/user")} > } /> } /> } /> } loader={() => ajax("/api/teams")} /> } /> } loader={({ params }) => ajax(`/api/teams/${params.teamId}`)} /> } /> ) ); 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