show<T> static method

Future<T?> show<T>(
  1. BuildContext context, {
  2. required Widget dialog,
  3. bool barrierDismissible = true,
  4. bool? resizeToAvoidBottomInset,
  5. M3EDialogPosition position = M3EDialogPosition.center,
  6. M3EDialogController? controller,
  7. Future<bool> onDismissRequest()?,
  8. bool autofocusFirst = true,
})

Presents a basic dialog and completes with the popped result.

position places the dialog (centre by default) inside the system bars and above the soft keyboard.

Escape, back, barrier taps and controller dismissals run onDismissRequest first. Focus lands on the first interactive element when autofocusFirst is true.

Implementation

static Future<T?> show<T>(
  BuildContext context, {
  required Widget dialog,
  bool barrierDismissible = true,
  bool? resizeToAvoidBottomInset,
  M3EDialogPosition position = M3EDialogPosition.center,
  M3EDialogController? controller,
  Future<bool> Function()? onDismissRequest,
  bool autofocusFirst = true,
}) {
  return _pushDialog<T>(
    context,
    variant: M3EDialogVariant.basic,
    barrierDismissible: barrierDismissible,
    controller: controller,
    onDismissRequest: onDismissRequest,
    autofocusFirst: autofocusFirst,
    builder: (BuildContext context) {
      return M3EScrimSystemUi.wrap(
        M3EDialogInset(
          padding: M3ETheme.of(context).dialogTheme.screenMargin,
          resizeToAvoidBottomInset: resizeToAvoidBottomInset,
          alignment: position.alignment,
          child: dialog,
        ),
      );
    },
  );
}