FactuGES_ERP/apps/web/src/routes/app-routes.tsx

153 lines
3.4 KiB
TypeScript
Raw Normal View History

2026-06-01 18:48:12 +00:00
// apps/web/src/routes/app-routes.tsx
2026-03-07 18:27:23 +00:00
2026-06-02 16:40:23 +00:00
import { Navigate, createBrowserRouter } from "react-router-dom";
import { buildModuleRoutes } from "@/components/module-routes";
import {
AppFullscreenLayout,
AppFullscreenLayoutFrame,
AppSidebarLayout,
AppSidebarLayoutFrame,
AuthLayout,
AuthLayoutFrame,
} from "@/layout";
import { UiKitPage } from "@/development/ui-kit";
import { HomePage } from "@/home";
2026-04-12 10:07:15 +00:00
import ShadcnShowcasePage from "@/pages/shadcn-ui-page";
import { buildSettingsRoute } from "@/settings";
2026-04-12 10:07:15 +00:00
import TailwindV4ShowcasePage from "@/pages/tailwindcss-page";
2026-03-07 18:27:23 +00:00
import { RouteErrorPage, StaticRouteErrorPage } from "../pages";
2026-06-01 18:48:12 +00:00
import { modules } from "../register-modules";
2025-05-28 14:21:09 +00:00
const AuthRouteErrorElement = () => (
<AuthLayoutFrame>
<RouteErrorPage />
</AuthLayoutFrame>
);
const AppFullscreenRouteErrorElement = () => (
<AppFullscreenLayoutFrame>
<RouteErrorPage />
</AppFullscreenLayoutFrame>
);
const AppSidebarRouteErrorElement = () => (
<AppSidebarLayoutFrame>
<RouteErrorPage />
</AppSidebarLayoutFrame>
);
2026-06-02 16:40:23 +00:00
export const getAppRouter = () => {
const params = {
...import.meta.env,
2025-05-28 14:21:09 +00:00
};
2026-06-02 16:40:23 +00:00
const authRoutes = buildModuleRoutes({
modules,
params,
layout: "auth",
});
2025-05-28 14:21:09 +00:00
2026-06-02 16:40:23 +00:00
const appSidebarRoutes = buildModuleRoutes({
modules,
params,
excludePathPrefix: "settings",
2026-06-02 16:40:23 +00:00
layout: "app-sidebar",
});
2025-05-28 14:21:09 +00:00
2026-06-02 16:40:23 +00:00
const appFullscreenRoutes = buildModuleRoutes({
modules,
params,
layout: "app-fullscreen",
});
2025-05-28 14:21:09 +00:00
const developmentRoutes = import.meta.env.DEV
? [
{
path: "development/ui-kit",
element: <UiKitPage />,
},
]
: [];
2026-06-02 16:40:23 +00:00
const appRoutes = createBrowserRouter([
{
path: "/",
children: [
{
index: true,
element: <Navigate replace to="/dashboard" />,
2026-06-02 16:40:23 +00:00
},
2025-05-28 14:21:09 +00:00
2026-06-02 16:40:23 +00:00
{
element: <AuthLayout />,
errorElement: <AuthRouteErrorElement />,
2026-07-05 11:43:13 +00:00
children: authRoutes,
},
{
path: "auth",
2026-06-02 16:40:23 +00:00
children: [
{
index: true,
2026-07-05 11:43:13 +00:00
element: <Navigate replace to="/login" />,
},
{
path: "*",
element: <Navigate replace to="/login" />,
2026-06-02 16:40:23 +00:00
},
],
},
2025-05-28 14:21:09 +00:00
2026-06-02 16:40:23 +00:00
{
element: <AppFullscreenLayout />,
errorElement: <AppFullscreenRouteErrorElement />,
2026-06-02 16:40:23 +00:00
children: appFullscreenRoutes,
},
2026-06-01 18:48:12 +00:00
2026-06-02 16:40:23 +00:00
{
element: <AppSidebarLayout />,
errorElement: <AppSidebarRouteErrorElement />,
2026-06-02 16:40:23 +00:00
children: [
{
path: "shadcnui",
element: <ShadcnShowcasePage />,
},
{
path: "tailwindcss4",
element: <TailwindV4ShowcasePage />,
},
{
path: "dashboard",
element: <HomePage />,
2026-06-02 16:40:23 +00:00
},
{
path: "catalog",
element: <StaticRouteErrorPage variant="notFound" />,
2026-06-02 16:40:23 +00:00
},
{
path: "quotes",
element: <StaticRouteErrorPage variant="notFound" />,
2026-06-02 16:40:23 +00:00
},
buildSettingsRoute({
modules,
params,
}),
...developmentRoutes,
2025-08-24 10:14:20 +00:00
2026-06-02 16:40:23 +00:00
...appSidebarRoutes,
],
},
2026-04-12 10:07:15 +00:00
2026-06-02 16:40:23 +00:00
{
path: "*",
element: <StaticRouteErrorPage variant="notFound" />,
2026-06-02 16:40:23 +00:00
},
],
},
]);
2026-06-01 18:48:12 +00:00
2026-06-02 16:40:23 +00:00
return appRoutes;
2025-05-28 14:21:09 +00:00
};