const rootRoute = new RootRoute();
const authenticatedRoutes = new Route({
getParentRoute: () => rootRoute,
path: "/",
onLoad: authGuardLoader,
});
const loginRoute = new Route({
getParentRoute: () => rootRoute,
path: "/login",
onLoad: loginLoader,
component: Login,
});
const welcomeRoute = new Route({
path: "/welcome",
getParentRoute: () => authenticatedRoutes,
component: Welcome,
});
const workspacesRoute = new Route({
path: "/workspaces",
getParentRoute: () => authenticatedRoutes,
component: Workspaces,
onLoad: workspacesLoader,
});
authenticatedRoutes.addChildren([welcomeRoute, workspacesRoute]);
const routeTree = rootRoute.addChildren([authenticatedRoutes, loginRoute]);
const router = new Router({ routeTree });
declare module "@tanstack/router" {
interface Register {
router: typeof router;
}
}
ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
<React.StrictMode>
<RouterProvider router={router} />
</React.StrictMode>
);
const rootRoute = new RootRoute();
const authenticatedRoutes = new Route({
getParentRoute: () => rootRoute,
path: "/",
onLoad: authGuardLoader,
});
const loginRoute = new Route({
getParentRoute: () => rootRoute,
path: "/login",
onLoad: loginLoader,
component: Login,
});
const welcomeRoute = new Route({
path: "/welcome",
getParentRoute: () => authenticatedRoutes,
component: Welcome,
});
const workspacesRoute = new Route({
path: "/workspaces",
getParentRoute: () => authenticatedRoutes,
component: Workspaces,
onLoad: workspacesLoader,
});
authenticatedRoutes.addChildren([welcomeRoute, workspacesRoute]);
const routeTree = rootRoute.addChildren([authenticatedRoutes, loginRoute]);
const router = new Router({ routeTree });
declare module "@tanstack/router" {
interface Register {
router: typeof router;
}
}
ReactDOM.createRoot(document.getElementById("root") as HTMLElement).render(
<React.StrictMode>
<RouterProvider router={router} />
</React.StrictMode>
);