getPageRoute method
Route?
getPageRoute(
- RouteSettings settings, {
- MicroAppBaseRoute? baseRoute,
- bool? routeNativeOnError,
Implementation
Route? getPageRoute(RouteSettings settings,
{MicroAppBaseRoute? baseRoute, bool? routeNativeOnError}) {
final routeName = settings.name;
final routeArguments = settings.arguments;
final pageBuilder = getPageBuilder(routeName, baseRoute: baseRoute);
if (pageBuilder == null) {
if (routeName != null && (routeNativeOnError ?? false)) {
pushNamedNative(routeName, arguments: routeArguments);
}
return null;
}
if (pageBuilder.hasModalBuilder) {
return pageBuilder.modalBuilder!(settings);
} else if (pageBuilder.hasWidgetBuilder) {
if (pageBuilder.hasWidgetRouteBuilder) {
return pageBuilder.widgetRouteBuilder!(
Builder(
builder: (context) =>
pageBuilder.widgetBuilder!(context, settings)),
);
} else {
final transitionType = pageBuilder.transitionType ??
MicroAppPreferences.config.pageTransitionType;
if (transitionType != MicroPageTransitionType.platform) {
return MicroPageTransition(
settings:
RouteSettings(arguments: routeArguments, name: routeName),
pageBuilder: pageBuilder.widgetBuilder!,
type: transitionType);
} else {
if (isIOS) {
return CupertinoPageRoute(
builder: (context) => pageBuilder.widgetBuilder!(context,
RouteSettings(arguments: routeArguments, name: routeName)),
);
} else {
return MaterialPageRoute(
builder: (context) => pageBuilder.widgetBuilder!(context,
RouteSettings(arguments: routeArguments, name: routeName)),
);
}
}
}
} else {
return null;
}
}