onSingleRoute static method
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),
);
}