first commit
This commit is contained in:
41
src/routes/routes.ts
Normal file
41
src/routes/routes.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import {
|
||||
createRouter,
|
||||
RootRoute,
|
||||
Route,
|
||||
AnyRoute,
|
||||
} from "@tanstack/react-router";
|
||||
import { RootLayout } from "./RouteLayout";
|
||||
import { getRoutes } from "./routeConfigs";
|
||||
import NotFound from "../Pages/NotFound";
|
||||
import { Auth } from "../Pages/Auth";
|
||||
import { ItemWithSubItems } from "../types/userPermissions";
|
||||
|
||||
export const rootRoute = new RootRoute({
|
||||
component: RootLayout,
|
||||
});
|
||||
|
||||
export function makeRouter(auth: string | null, roles: ItemWithSubItems[]) {
|
||||
const routeConfigs = getRoutes(auth, roles);
|
||||
|
||||
const childRoutes: AnyRoute[] = routeConfigs.map(
|
||||
({ path, component }) =>
|
||||
new Route({
|
||||
getParentRoute: () => rootRoute,
|
||||
path,
|
||||
component,
|
||||
}) as AnyRoute
|
||||
);
|
||||
|
||||
const notFoundRoute = new Route({
|
||||
getParentRoute: () => rootRoute,
|
||||
path: "*",
|
||||
component: auth ? NotFound : Auth,
|
||||
});
|
||||
|
||||
const routeTree = rootRoute.addChildren([...childRoutes, notFoundRoute]);
|
||||
|
||||
return createRouter({
|
||||
routeTree,
|
||||
defaultPreload: "intent",
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user