showAdaptive<T> static method

Future<T?> showAdaptive<T>(
  1. BuildContext context, {
  2. required String title,
  3. required Widget content,
  4. required String confirmLabel,
  5. required VoidCallback? onConfirm,
  6. String dismissLabel = M3EDialogStrings.cancel,
  7. Widget? icon,
  8. M3EDialogPosition position = M3EDialogPosition.center,
  9. bool barrierDismissible = true,
  10. M3EDialogController? controller,
  11. Future<bool> onDismissRequest()?,
  12. bool autofocusFirst = true,
  13. String? semanticLabel,
})

Presents an M3EAdaptiveDialog: full-screen below the compact breakpoint, basic above it, morphing when the width crosses it.

Implementation

static Future<T?> showAdaptive<T>(
  BuildContext context, {
  required String title,
  required Widget content,
  required String confirmLabel,
  required VoidCallback? onConfirm,
  String dismissLabel = M3EDialogStrings.cancel,
  Widget? icon,
  M3EDialogPosition position = M3EDialogPosition.center,
  bool barrierDismissible = true,
  M3EDialogController? controller,
  Future<bool> Function()? onDismissRequest,
  bool autofocusFirst = true,
  String? semanticLabel,
}) {
  final double width = MediaQuery.sizeOf(context).width;
  final M3EDialogTheme dialogTheme = _themeOf(context).dialogTheme;
  return _pushDialog<T>(
    context,
    variant: width < dialogTheme.compactBreakpoint
        ? M3EDialogVariant.fullScreen
        : M3EDialogVariant.basic,
    barrierDismissible: barrierDismissible,
    controller: controller,
    onDismissRequest: onDismissRequest,
    autofocusFirst: autofocusFirst,
    builder: (BuildContext context) => M3EAdaptiveDialog(
      title: title,
      content: content,
      confirmLabel: confirmLabel,
      onConfirm: onConfirm,
      dismissLabel: dismissLabel,
      icon: icon,
      position: position,
      controller: controller,
      semanticLabel: semanticLabel,
    ),
  );
}