Files
RasadDam_Frontend/src/routes/routes.ts

42 lines
1007 B
TypeScript

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",
});
}