modularRouterConfig function

RouterConfig<RouteState> modularRouterConfig(
  1. RouteCollection routes, {
  2. AutoInjector? injector,
  3. ModuleManager? manager,
  4. String initialRoute = '/',
  5. GlobalKey<NavigatorState>? navigatorKey,
  6. List<NavigatorObserver> observers = const [],
  7. PageTransition defaultTransition = TransitionType.material,
})

Wires the Navigator 2.0 pieces into a RouterConfig for MaterialApp.router(routerConfig: ...).

Pass the injector (from bootstrapModule) when routes use provide, so page-scoped view models can resolve their dependencies. Defaults to an empty injector when omitted.

Implementation

RouterConfig<RouteState> modularRouterConfig(
  RouteCollection routes, {
  AutoInjector? injector,
  ModuleManager? manager,
  String initialRoute = '/',
  GlobalKey<NavigatorState>? navigatorKey,
  List<NavigatorObserver> observers = const [],
  PageTransition defaultTransition = TransitionType.material,
}) {
  final inj = injector ?? (AutoInjector()..commit());
  return RouterConfig<RouteState>(
    routerDelegate: ModularRouterDelegate(
      routes,
      inj,
      manager: manager,
      navigatorKey: navigatorKey,
      observers: observers,
      defaultTransition: defaultTransition,
    ),
    routeInformationParser: ModularRouteInformationParser(),
    routeInformationProvider: PlatformRouteInformationProvider(
      initialRouteInformation: RouteInformation(uri: _initialUri(initialRoute)),
    ),
    backButtonDispatcher: RootBackButtonDispatcher(),
  );
}