routeTo method

Route routeTo(
  1. RouteSettings routeSettings
)

Implementation

Route routeTo(RouteSettings routeSettings) {
  Module? module = _module(routeSettings.name!);
  ModuleRoute? route = _route(routeSettings.name!, module);

  if (module == null || route == null) {
    return _pageRoute(
      UnknownRoute(routeName: routeSettings.name),
      null,
      "unknown",
      null,
    );
  }

  if (this.enableAuthorize && !this.authorized) {
    if (!module.allowAnonymous) {
      if (!route.allowAnonymous) {
        module = _module(this.unauthorizedRedirectRoute);
        route = _route(this.unauthorizedRedirectRoute, module);

        if (module == null || route == null) {
          return _pageRoute(
            UnknownRoute(routeName: this.unauthorizedRedirectRoute),
            null,
            "unknown",
            null,
          );
        }

        routeSettings = RouteSettings(
          name: this.unauthorizedRedirectRoute,
          arguments: module.path,
        );
      }
    }
  }

  _manageInjections(module);

  Inject._parameter = routeSettings.arguments;

  final view = route.builder(routeSettings.arguments);
  final pageRoute = _pageRoute(
    view,
    route.transitionType,
    routeSettings.name,
    module.path,
  );

  return pageRoute;
}