onSingleRoute static method

Route? onSingleRoute(
  1. RouteSettings settings,
  2. RouteConfig config
)

Create a new Route with config and settings.

Implementation

static Route? onSingleRoute(RouteSettings settings, RouteConfig config) {
  final map = <String, dynamic>{};
  final arguments = settings.arguments;
  if (arguments is DynamicMap) {
    map.addAll(arguments);
  } else if (arguments is RouteQuery) {
    map.addAll(arguments._parameters);
    switch (arguments._transition) {
      case PageTransition.none:
      case PageTransition.fade:
      case PageTransition.modal:
        map["transition"] = arguments._transition;
        break;
      case PageTransition.fullscreen:
        map["fullscreen"] = true;
        map["transition"] = arguments._transition;
        break;
      default:
        break;
    }
  }
  for (final reroute in config.reroute.entries) {
    if (!reroute.value.call()) {
      continue;
    }
    map["redirect_to"] = settings.name;
    return onGenerateRoute(
      settings.copyWith(name: reroute.key, arguments: map),
    );
  }
  map["redirect_to"] = settings.name;
  return UIPageRoute(
    builder: config.builder,
    settings: settings.copyWith(name: settings.name, arguments: map),
  );
}