showPlatformSimpleAlert function

Future<void> showPlatformSimpleAlert({
  1. required BuildContext context,
  2. required String message,
  3. required String cupertinoOkLabel,
  4. Color? materialBackgroundColor,
  5. double? materialElevation,
  6. EdgeInsetsGeometry? materialMargin,
  7. EdgeInsetsGeometry? materialPadding,
  8. double? materialWidth,
  9. ShapeBorder? materialShape,
  10. HitTestBehavior? materialHitTestBehavior,
  11. SnackBarBehavior? materialSnackBarBehavior,
  12. SnackBarAction? materialAction,
  13. double? materialActionOverflowThreshold,
  14. bool? materialShowCloseIcon,
  15. Color? materialCloseIconColor,
  16. Duration materialDuration = _snackBarDisplayDuration,
  17. bool? materialPersist,
  18. Animation<double>? materialAnimation,
  19. VoidCallback? materialOnVisible,
  20. DismissDirection? materialDismissDirection,
  21. Clip materialClipBehavior = Clip.hardEdge,
  22. String? cupertinoTitle,
  23. PlatformDialogData? cupertinoDialogData,
})

A pure convenience method for showing a simple alert. On material, it will show a SnackBar. On cupertino, it will show a CupertinoAlertDialog with a single 'OK' action.

Implementation

Future<void> showPlatformSimpleAlert({
  required BuildContext context,
  required String message,
  required String cupertinoOkLabel,
  Color? materialBackgroundColor,
  double? materialElevation,
  EdgeInsetsGeometry? materialMargin,
  EdgeInsetsGeometry? materialPadding,
  double? materialWidth,
  ShapeBorder? materialShape,
  HitTestBehavior? materialHitTestBehavior,
  SnackBarBehavior? materialSnackBarBehavior,
  SnackBarAction? materialAction,
  double? materialActionOverflowThreshold,
  bool? materialShowCloseIcon,
  Color? materialCloseIconColor,
  Duration materialDuration = _snackBarDisplayDuration,
  bool? materialPersist,
  Animation<double>? materialAnimation,
  VoidCallback? materialOnVisible,
  DismissDirection? materialDismissDirection,
  Clip materialClipBehavior = Clip.hardEdge,
  String? cupertinoTitle,
  PlatformDialogData? cupertinoDialogData,
}) => context.platformLazyValue(
  material: () => ScaffoldMessenger.of(context)
      .showSnackBar(
        SnackBar(
          content: Text(message),
          backgroundColor: materialBackgroundColor,
          elevation: materialElevation,
          margin: materialMargin,
          padding: materialPadding,
          width: materialWidth,
          shape: materialShape,
          hitTestBehavior: materialHitTestBehavior,
          behavior: materialSnackBarBehavior,
          action: materialAction,
          actionOverflowThreshold: materialActionOverflowThreshold,
          showCloseIcon: materialShowCloseIcon,
          closeIconColor: materialCloseIconColor,
          clipBehavior: materialClipBehavior,
          duration: materialDuration,
          persist: materialPersist,
          animation: materialAnimation,
          onVisible: materialOnVisible,
          dismissDirection: materialDismissDirection,
        ),
      )
      .closed,
  cupertino: () => showCupertinoDialog(
    context: context,
    builder: (context) => CupertinoAlertDialog(
      title: cupertinoTitle == null ? null : Text(cupertinoTitle),
      content: Text(message),
      actions: [
        PlatformAlertDialogActionButton(
          child: Text(cupertinoOkLabel),
          onPressed: (context) => Navigator.of(context).pop(),
        ),
      ],
    ),
    anchorPoint: cupertinoDialogData?.anchorPoint,
    barrierColor: cupertinoDialogData?.barrierColor,
    barrierDismissible: cupertinoDialogData?.barrierDismissible ?? kCupertinoBarrierDismissible,
    barrierLabel: cupertinoDialogData?.barrierLabel,
    routeSettings: cupertinoDialogData?.routeSettings,
    useRootNavigator: cupertinoDialogData?.useRootNavigator ?? kDefaultUseRootNavigator,
    requestFocus: cupertinoDialogData?.requestFocus,
  ),
);