showAlertDialog function

void showAlertDialog({
  1. String? title,
  2. Color titleColor = const Color(0XFF222222),
  3. String? contentText,
  4. Color contentTextColor = const Color(0XFF666666),
  5. String? cancelText,
  6. BorderRadius? cancelBorderRadius,
  7. Color? cancelBackgroundColor,
  8. Color? cancelTextColor,
  9. String? confirmText,
  10. BorderRadius? confirmBorderRadius,
  11. Color? confirmBackgroundColor,
  12. Color? confirmTextColor,
  13. Widget? confirmWidget,
  14. VoidCallback? onConfirm,
  15. VoidCallback? onCancel,
})

Implementation

void showAlertDialog({
  String? title,
  Color titleColor = const Color(0XFF222222),
  String? contentText,
  Color contentTextColor = const Color(0XFF666666),
  String? cancelText,
  BorderRadius? cancelBorderRadius,
  Color? cancelBackgroundColor,
  Color? cancelTextColor,
  String? confirmText,
  BorderRadius? confirmBorderRadius,
  Color? confirmBackgroundColor,
  Color? confirmTextColor,
  Widget? confirmWidget,
  VoidCallback? onConfirm,
  VoidCallback? onCancel,
}) {
  var actions = <Widget>[];
  if (BZObjectUtil.isNotEmpty(cancelText)) {
    actions.add(textButtonWidget(
            text: cancelText!,
            borderRadius: cancelBorderRadius,
            backgroundColor: cancelBackgroundColor,
            textColor: cancelTextColor,
            padding: EdgeInsets.symmetric(horizontal: 30.w),
            onPressed: onCancel ??
                () {
                  Get.back();
                })
        .expanded());
  }

  if (confirmWidget != null) {
    actions.add(confirmWidget.expanded());
  } else if (BZObjectUtil.isNotEmpty(confirmText)) {
    actions.add(textButtonWidget(
            text: confirmText!,
            borderRadius: confirmBorderRadius,
            backgroundColor: confirmBackgroundColor,
            textColor: confirmTextColor,
            padding: EdgeInsets.symmetric(horizontal: 30.w),
            onPressed: onConfirm)
        .expanded());
  }

  if (actions.length == 2) {
    actions.insert(
      1,
      SizedBox(
        width: 13.w,
      ),
    );
  }

  Widget baseAlertDialog = AlertDialog(
    // titlePadding: titlePadding ?? const EdgeInsets.all(8),
    // contentPadding: contentPadding ?? const EdgeInsets.all(8),
    backgroundColor: Colors.white,
    shape: RoundedRectangleBorder(
        borderRadius: BorderRadius.all(Radius.circular(20))),
    title: BZObjectUtil.isNotEmpty(title)
        ? textWidget(
            title,
            textAlign: TextAlign.center,
            color: titleColor,
            fontSize: 15.sp,
            fontWeight: FontWeight.bold,
          )
        : null,
    content: Column(
      crossAxisAlignment: CrossAxisAlignment.center,
      mainAxisSize: MainAxisSize.min,
      children: [
        BZObjectUtil.isNotEmpty(contentText)
            ? textWidget(contentText,
                textAlign: TextAlign.center,
                color: contentTextColor,
                fontSize: 13.sp,
                maxLines: 6)
            : SizedBox.shrink(),
        BZObjectUtil.isNotEmpty(contentText) && actions.isNotEmpty
            ? SizedBox(
                height: 15.h,
              )
            : SizedBox.shrink(),
        Row(
          children: actions,
        ).flexible(),
      ],
    ),
    buttonPadding: EdgeInsets.zero,
  );

  Get.dialog(baseAlertDialog);
}