ModalRouteTheme.fromRoute constructor
ModalRouteTheme.fromRoute(
- BuildContext context,
- TypeSafeModalRoute route
Implementation
factory ModalRouteTheme.fromRoute(BuildContext context, TypeSafeModalRoute route) {
final routeTheme =
PipenTheme.maybeOf(context)?.themes.routeTheme ?? ModalRouteTheme.styleFrom();
// Padding
EdgeInsets padding = route is RouteZeroPadding ? EdgeInsets.zero : routeTheme.padding;
if (route case RoutePadding customPadding) padding = customPadding.padding;
// Barrier dismissible
final barrierDismissible = route is RouteFixed ? true : routeTheme.barrierDismissible;
// Border radius
BorderRadius borderRadius = routeTheme.borderRadius;
if (route case RouteBorderRadius routeBorderRadius) {
borderRadius = BorderRadius.circular(routeBorderRadius.borderRadius);
}
// Margin
EdgeInsets margin = routeTheme.margin;
if (route case RouteMargin routeInsetPadding) {
margin = routeInsetPadding.margin(context);
}
// Transition
RouteTransitionBuilder transition = routeTheme.transition;
if (route case RouteTransition routeTransition) transition = routeTransition.transitionBuilder;
// Width
final width = routeTheme.width;
return ModalRouteTheme(
width: width,
padding: padding,
transition: transition,
margin: margin,
borderRadius: borderRadius,
barrierDismissible: barrierDismissible,
);
}