import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:keyboard/resource/string.gen.dart';

import '../resource/assets.gen.dart';
import '../resource/colors.gen.dart';
import '../utils/styles.dart';

// 温馨提示弹窗
class TipsDialog {
  static const String tag = 'TipsDialog';

  static void show({
    String? title,
    String? desc,
    String? btnCancelText,
    String? btnConfirmText,
    Function? btnCancel,
    Function? btnConfirm,
  }) {
    SmartDialog.show(
      tag: tag,
      backType: SmartBackType.block,
      clickMaskDismiss: true,
      maskColor: ColorName.black70,
      builder: (_) {
        return Scaffold(
          backgroundColor: Colors.transparent,
          body: Column(
            crossAxisAlignment: CrossAxisAlignment.center,
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              Container(
                width: double.infinity,
                margin: EdgeInsets.symmetric(horizontal: 31.w),
                decoration: ShapeDecoration(
                  color: Colors.white,
                  shape: RoundedRectangleBorder(
                    borderRadius: BorderRadius.circular(20.r),
                  ),
                ),
                child: Stack(
                  children: [
                    Container(
                      padding: EdgeInsets.symmetric(
                        horizontal: 16.w,
                        vertical: 24.h,
                      ),
                      child: Column(
                        mainAxisSize: MainAxisSize.min,
                        crossAxisAlignment: CrossAxisAlignment.center,
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: [
                          Text(
                            title ?? "",
                            style: Styles.getTextStyleBlack204W500(16.sp),
                          ),
                          SizedBox(height: 16.h),
                          Text(
                            desc ?? "",
                            style: Styles.getTextStyleBlack204W400(14.sp),
                          ),
                          SizedBox(height: 20.h),
                          Row(
                            mainAxisAlignment: MainAxisAlignment.spaceBetween,
                            children: [
                              Expanded(
                                child: GestureDetector(
                                  onTap: () {
                                    if (btnCancel != null) {
                                      btnCancel();
                                    }
                                    SmartDialog.dismiss();
                                  },
                                  child: Container(
                                    height: 48.h,
                                    alignment: Alignment.center,
                                    decoration: ShapeDecoration(
                                      color: const Color(0xFFF5F4F9),
                                      shape: RoundedRectangleBorder(
                                        borderRadius: BorderRadius.circular(
                                          31.r,
                                        ),
                                      ),
                                    ),
                                    child: Text(
                                      btnCancelText ?? "",
                                      style: Styles.getTextStyleBlack204W500(
                                        16.sp,
                                      ),
                                    ),
                                  ),
                                ),
                              ),
                              SizedBox(width: 16.w),
                              Expanded(
                                child: GestureDetector(
                                  onTap: () {
                                    if (btnConfirm != null) {
                                      btnConfirm();
                                    }
                                    SmartDialog.dismiss(tag: tag);
                                  },
                                  child: Container(
                                    height: 48.h,
                                    alignment: Alignment.center,
                                    decoration:
                                        Styles.getActivateButtonDecoration(
                                          31.r,
                                        ),
                                    child: Text(
                                      btnConfirmText ?? "",
                                      style: Styles.getTextStyleWhiteW500(
                                        16.sp,
                                      ),
                                    ),
                                  ),
                                ),
                              ),
                            ],
                          ),
                        ],
                      ),
                    ),
                    Positioned(
                      right: 14.w,
                      top: 14.h,
                      child: GestureDetector(
                        onTap: () {
                          SmartDialog.dismiss();
                        },
                        child: Assets.images.iconCustomDialogClose.image(
                          width: 24.w,
                          height: 24.h,
                        ),
                      ),
                    ),
                  ],
                ),
              ),
            ],
          ),
        );
      },
    );
  }
}
