41 lines
980 B
TypeScript
41 lines
980 B
TypeScript
import { guardRouteIndexAsNotFound } from '@/components/layout/app-not-found';
|
|
import type { RouteStateDataOption } from '@/infra/routes/traits';
|
|
import { Outlet, type RouteOptions } from '@tanstack/react-router';
|
|
|
|
export interface BuildVirtualBranchRouteOptions {
|
|
title: string;
|
|
}
|
|
|
|
export function buildVirtualBranchRouteOptions(
|
|
options: BuildVirtualBranchRouteOptions
|
|
): {
|
|
beforeLoad: RouteOptions['beforeLoad'];
|
|
staticData: RouteStateDataOption;
|
|
component: RouteOptions['component'];
|
|
} {
|
|
return {
|
|
beforeLoad: guardRouteIndexAsNotFound,
|
|
staticData: {
|
|
breadcrumb: {
|
|
label: options.title,
|
|
link: undefined,
|
|
},
|
|
} satisfies RouteStateDataOption,
|
|
component: Outlet,
|
|
};
|
|
}
|
|
|
|
export interface BuildLeafRouteStaticDataOptions {
|
|
title: string;
|
|
}
|
|
|
|
export function buildLeafRouteStaticData(
|
|
options: BuildLeafRouteStaticDataOptions
|
|
): RouteStateDataOption {
|
|
return {
|
|
breadcrumb: {
|
|
label: options.title,
|
|
},
|
|
};
|
|
}
|