showAdaptive<T> static method
Future<T?>
showAdaptive<T>(
- BuildContext context,
- TModalWidgetBuilder<
T> builder, { - String? title,
- String? subTitle,
- String? imageUrl,
- String? description,
- bool persistent = false,
- double? width,
- bool? showCloseButton,
- Widget layoutBuilder(
- BuildContext context,
- Widget child
Shows an adaptive modal dialog.
On desktop, this displays a regular modal using show. On mobile, it pushes a new page using TPageWrapper.
Implementation
static Future<T?> showAdaptive<T>(
BuildContext context,
TModalWidgetBuilder<T> builder, {
String? title,
String? subTitle,
String? imageUrl,
String? description,
bool persistent = false,
double? width,
bool? showCloseButton,
Widget Function(BuildContext context, Widget child)? layoutBuilder,
}) {
final layout = layoutBuilder ??
(ctx, child) => defaultAdaptiveLayoutBuilder(
ctx,
child,
title: title,
subTitle: subTitle,
imageUrl: imageUrl,
description: description,
onBackPressed: () => Navigator.of(ctx).pop(),
);
// Mobile: always push a full page.
if (!context.isDesktop) {
return Navigator.of(context).push<T>(
MaterialPageRoute(
builder: (mContext) {
final modalCtx = TModalContext<T>(mContext);
return layout(mContext, builder(modalCtx));
},
),
);
}
return show<T>(
context,
builder,
persistent: persistent,
width: width,
layoutBuilder: layout,
);
}