show method
Actually presents the overlay using this configuration's mechanism.
Implementation
@override
OverlayCompleter<T?> show(BuildContext context) {
final navigatorState = Navigator.of(
context,
rootNavigator: useRootNavigator,
);
final CapturedThemes themes =
InheritedTheme.capture(from: context, to: navigatorState.context);
final CapturedData data =
Data.capture(from: context, to: navigatorState.context);
final dialogRoute = DialogRoute<T>(
context: context,
builder: (context) {
return DialogOverlayContent<T>(
route: ModalRoute.of(context) as DialogRoute<T>,
child: Builder(builder: (context) {
return builder(context);
}),
);
},
themes: themes,
barrierDismissible: barrierDismissible,
barrierColor: barrierColor ?? const Color.fromRGBO(0, 0, 0, 0),
barrierLabel: barrierLabel,
useSafeArea: useSafeArea,
settings: routeSettings,
anchorPoint: anchorPoint,
data: data,
traversalEdgeBehavior:
traversalEdgeBehavior ?? TraversalEdgeBehavior.closedLoop,
transitionBuilder: (context, animation, secondaryAnimation, child) {
return buildShadcnDialogTransitions(
context,
BorderRadius.zero,
alignment ?? Alignment.center,
animation,
secondaryAnimation,
fullScreen,
child,
);
},
alignment: alignment ?? Alignment.center,
);
final future = navigatorState.push(dialogRoute);
return _FutureOverlayCompleter<T>(future);
}