FactuGES_ERP/apps/web/src/routes/app-routes.tsx
david ef2ae58046 feat(home): implement home page with KPIs, recent activity, and attention items
- Added Spanish translations for home page components.
- Created API endpoints for fetching home-related data (customers, proformas, issued invoices).
- Developed hooks for managing home page data queries.
- Implemented home page layout with KPI cards, attention panels, monthly billing summary, and recent activity sections.
- Added error handling and loading states for improved user experience.
2026-08-13 11:04:57 +02:00

153 lines
3.4 KiB
TypeScript

// apps/web/src/routes/app-routes.tsx
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";
import ShadcnShowcasePage from "@/pages/shadcn-ui-page";
import { buildSettingsRoute } from "@/settings";
import TailwindV4ShowcasePage from "@/pages/tailwindcss-page";
import { RouteErrorPage, StaticRouteErrorPage } from "../pages";
import { modules } from "../register-modules";
const AuthRouteErrorElement = () => (
<AuthLayoutFrame>
<RouteErrorPage />
</AuthLayoutFrame>
);
const AppFullscreenRouteErrorElement = () => (
<AppFullscreenLayoutFrame>
<RouteErrorPage />
</AppFullscreenLayoutFrame>
);
const AppSidebarRouteErrorElement = () => (
<AppSidebarLayoutFrame>
<RouteErrorPage />
</AppSidebarLayoutFrame>
);
export const getAppRouter = () => {
const params = {
...import.meta.env,
};
const authRoutes = buildModuleRoutes({
modules,
params,
layout: "auth",
});
const appSidebarRoutes = buildModuleRoutes({
modules,
params,
excludePathPrefix: "settings",
layout: "app-sidebar",
});
const appFullscreenRoutes = buildModuleRoutes({
modules,
params,
layout: "app-fullscreen",
});
const developmentRoutes = import.meta.env.DEV
? [
{
path: "development/ui-kit",
element: <UiKitPage />,
},
]
: [];
const appRoutes = createBrowserRouter([
{
path: "/",
children: [
{
index: true,
element: <Navigate replace to="/dashboard" />,
},
{
element: <AuthLayout />,
errorElement: <AuthRouteErrorElement />,
children: authRoutes,
},
{
path: "auth",
children: [
{
index: true,
element: <Navigate replace to="/login" />,
},
{
path: "*",
element: <Navigate replace to="/login" />,
},
],
},
{
element: <AppFullscreenLayout />,
errorElement: <AppFullscreenRouteErrorElement />,
children: appFullscreenRoutes,
},
{
element: <AppSidebarLayout />,
errorElement: <AppSidebarRouteErrorElement />,
children: [
{
path: "shadcnui",
element: <ShadcnShowcasePage />,
},
{
path: "tailwindcss4",
element: <TailwindV4ShowcasePage />,
},
{
path: "dashboard",
element: <HomePage />,
},
{
path: "catalog",
element: <StaticRouteErrorPage variant="notFound" />,
},
{
path: "quotes",
element: <StaticRouteErrorPage variant="notFound" />,
},
buildSettingsRoute({
modules,
params,
}),
...developmentRoutes,
...appSidebarRoutes,
],
},
{
path: "*",
element: <StaticRouteErrorPage variant="notFound" />,
},
],
},
]);
return appRoutes;
};