$route<T extends ShellRouteData> static method

ShellRoute $route<T extends ShellRouteData>({
  1. required T factory(
    1. GoRouterState
    ),
  2. GlobalKey<NavigatorState>? navigatorKey,
  3. GlobalKey<NavigatorState>? parentNavigatorKey,
  4. List<RouteBase> routes = const <RouteBase>[],
  5. List<NavigatorObserver>? observers,
  6. String? restorationScopeId,
})

A helper function used by generated code.

Should not be used directly.

Implementation

static ShellRoute $route<T extends ShellRouteData>({
  required T Function(GoRouterState) factory,
  GlobalKey<NavigatorState>? navigatorKey,
  GlobalKey<NavigatorState>? parentNavigatorKey,
  List<RouteBase> routes = const <RouteBase>[],
  List<NavigatorObserver>? observers,
  String? restorationScopeId,
}) {
  T factoryImpl(GoRouterState state) {
    return (_stateObjectExpando[state] ??= factory(state)) as T;
  }

  Widget builder(
    BuildContext context,
    GoRouterState state,
    Widget navigator,
  ) =>
      factoryImpl(state).builder(
        context,
        state,
        navigator,
      );

  Page<void> pageBuilder(
    BuildContext context,
    GoRouterState state,
    Widget navigator,
  ) =>
      factoryImpl(state).pageBuilder(
        context,
        state,
        navigator,
      );

  return ShellRoute(
    builder: builder,
    pageBuilder: pageBuilder,
    parentNavigatorKey: parentNavigatorKey,
    routes: routes,
    navigatorKey: navigatorKey,
    observers: observers,
    restorationScopeId: restorationScopeId,
  );
}