Add skeletons for routes

Signed-off-by: Bryan Frimin <bryan@getprobo.com>
Signed-off-by: Sacha Al Himdani <sacha@getprobo.com>
This commit is contained in:
Jonathan
2025-05-22 15:41:19 +02:00
committed by Sacha Al Himdani
parent 08bf65d919
commit 72c3fe586a
2 changed files with 29 additions and 1 deletions

View File

@@ -0,0 +1,22 @@
import { Button, IconPlusLarge, PageHeader, Skeleton } from "@probo/ui";
import { useTranslate } from "@probo/i18n";
export function RisksPageSkeleton() {
const { __ } = useTranslate();
return (
<div className="space-y-6">
<PageHeader title={__("Risks")}>
<Button icon={IconPlusLarge} disabled>
{__("New Risk")}
</Button>
</PageHeader>
<div className="grid grid-cols-2 gap-4">
<Skeleton className="aspect-square" />
<Skeleton className="aspect-square" />
</div>
<div>
<Skeleton style={{ aspectRatio: "1280/280" }} />
</div>
</div>
);
}

View File

@@ -7,6 +7,7 @@ import { MainLayout } from "./layouts/MainLayout";
import { AuthLayout, CenteredLayout, CenteredLayoutSkeleton } from "@probo/ui"; import { AuthLayout, CenteredLayout, CenteredLayoutSkeleton } from "@probo/ui";
import { lazy, Suspense, type FC } from "react"; import { lazy, Suspense, type FC } from "react";
import { UnAuthenticatedError } from "./providers/RelayProviders"; import { UnAuthenticatedError } from "./providers/RelayProviders";
import { RisksPageSkeleton } from "./pages/organizations/risks/skeletons/RisksPage";
function ErrorBoundary() { function ErrorBoundary() {
const error = useRouteError(); const error = useRouteError();
@@ -60,6 +61,7 @@ const routes = [
children: [ children: [
{ {
path: "risks", path: "risks",
fallback: RisksPageSkeleton,
Component: lazy(() => import("./pages/organizations/risks/RisksPage")), Component: lazy(() => import("./pages/organizations/risks/RisksPage")),
}, },
], ],
@@ -72,6 +74,7 @@ const routes = [
function routeTransformer(route: Route): RouteObject { function routeTransformer(route: Route): RouteObject {
if ("fallback" in route && route.fallback) { if ("fallback" in route && route.fallback) {
const fallback = <route.fallback />; const fallback = <route.fallback />;
console.log(fallback, route.path);
return { return {
...route, ...route,
children: route.children?.map(routeTransformer), children: route.children?.map(routeTransformer),
@@ -82,7 +85,10 @@ function routeTransformer(route: Route): RouteObject {
), ),
} as RouteObject; } as RouteObject;
} }
return route as RouteObject; return {
...route,
children: route.children?.map(routeTransformer),
};
} }
export const router = createBrowserRouter(routes.map(routeTransformer)); export const router = createBrowserRouter(routes.map(routeTransformer));