showWithConfig static method

String showWithConfig(
  1. BuildContext context, {
  2. required AlertDialogConfig config,
  3. bool barrierDismissible = false,
  4. bool rootOverlay = true,
  5. bool enableHide = false,
})

Implementation

static String showWithConfig(
  BuildContext context, {
  required AlertDialogConfig config,
  bool barrierDismissible = false,
  bool rootOverlay = true,
  bool enableHide = false,
}) {
  final dialogId = 'alert_dialog_${DateTime.now().millisecondsSinceEpoch}';

  final effectiveCancelConfig = config.cancelConfig ??
      (config.cancelText?.isNotEmpty == true ? ButtonConfig(text: config.cancelText!) : null);
  final effectiveConfirmConfig = config.confirmConfig ??
      (config.defaultText?.isNotEmpty == true
          ? ButtonConfig(
              text: config.defaultText!,
              type: config.isDestructive ? TextColorPreset.red : TextColorPreset.blue,
              isBold: true,
              onClick: config.defaultCallback,
            )
          : null);

  DialogOverlayManager.show(
    context: context,
    dialogId: dialogId,
    barrierDismissible: barrierDismissible,
    enableHide: enableHide,
    rootOverlay: rootOverlay,
    dialog: AtomicAlertDialog(
      config: AlertDialogConfig(
        title: config.title,
        content: config.content,
        iconWidget: config.iconWidget,
        autoDismiss: config.autoDismiss,
        countdownDuration: config.countdownDuration,
        itemList: config.itemList,
        confirmConfig: effectiveConfirmConfig != null
            ? ButtonConfig(
                text: effectiveConfirmConfig.text,
                type: effectiveConfirmConfig.type,
                isBold: effectiveConfirmConfig.isBold,
                onClick: () {
                  DialogOverlayManager.dismiss(dialogId);
                  effectiveConfirmConfig.onClick?.call();
                },
              )
            : null,
        cancelConfig: effectiveCancelConfig != null
            ? ButtonConfig(
                text: effectiveCancelConfig.text,
                type: effectiveCancelConfig.type,
                isBold: effectiveCancelConfig.isBold,
                onClick: () {
                  DialogOverlayManager.dismiss(dialogId);
                  effectiveCancelConfig.onClick?.call();
                },
              )
            : null,
      ),
    ),
  );

  return dialogId;
}