BloomRoute.shell constructor

BloomRoute.shell({
  1. required BloomNode layout(
    1. BloomNode child,
    2. Map<String, String> params
    ),
  2. required List<BloomRoute> routes,
  3. List<BloomRouteGuard> guards = const [],
})

Factory constructor for persistent shell layouts enclosing nested routes.

Allows persistent UI chrome (such as top navigation bars, sidebars, and footers) to surround child routes without altering the URL path hierarchy.

final shellRoute = BloomRoute.shell(
  layout: (child, params) => Div(
    className: 'app-container',
    children: [
      const Nav(text: 'Header'),
      child,
    ],
  ),
  routes: [
    BloomRoute('/home', (params) => const Div(text: 'Home')),
    BloomRoute('/profile', (params) => const Div(text: 'Profile')),
  ],
);

Implementation

factory BloomRoute.shell({
  required BloomNode Function(BloomNode child, Map<String, String> params) layout,
  required List<BloomRoute> routes,
  List<BloomRouteGuard> guards = const [],
}) {
  return BloomRoute(
    '',
    null,
    layout: layout,
    guards: guards,
    children: routes,
  );
}