mShowSmartDialog function

Future<void> mShowSmartDialog({
  1. required WidgetBuilder builder,
  2. required String tag,
  3. SmartDialogController? controller,
  4. Alignment? alignment,
  5. bool? bindPage,
  6. Color? maskColor,
  7. VoidCallback? onDismiss,
  8. Duration? animationTime,
  9. bool? useAnimation,
  10. SmartAnimationType? animationType,
  11. bool? clickMaskDismiss,
  12. Rect? ignoreArea,
})

Implementation

Future<void> mShowSmartDialog({
  required WidgetBuilder builder,
  required String tag,
  SmartDialogController? controller,
  Alignment? alignment,
  bool? bindPage,
  Color? maskColor,
  VoidCallback? onDismiss,
  Duration? animationTime,
  bool? useAnimation,
  SmartAnimationType? animationType,
  bool? clickMaskDismiss,
  Rect? ignoreArea,
}) async {
  if (lastDialogTag == tag) {
    return;
  }
  lastDialogTag = tag;

  /// Hide keyboard.
  WidgetsBinding.instance.focusManager.primaryFocus?.unfocus();
  if (MConfig.onShowDialog != null) MConfig.onShowDialog!();
  return SmartDialog.show(
    builder: builder,
    controller: controller,
    alignment: alignment,
    tag: tag,
    bindPage: bindPage,
    maskColor: maskColor,
    animationTime: animationTime,
    useAnimation: useAnimation,
    animationType: animationType,
    clickMaskDismiss: clickMaskDismiss,
    debounce: true,
    keepSingle: true,
    ignoreArea: ignoreArea,
    onDismiss: () {
      lastDialogTag = '';
      if (onDismiss != null) {
        onDismiss();
      }
    },
  );
}