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 '../data/consts/web_url.dart';
import '../resource/assets.gen.dart';
import '../resource/colors.gen.dart';
import '../utils/styles.dart';
import '../widget/click_text_span.dart';

class PrivacyAgreementDialog {
  static const String tag = 'PrivacyAgreementDialog';

  static void show({Function? btnCancel, Function? btnConfirm}) {
    SmartDialog.show(
      tag: tag,
      backType: SmartBackType.block,

      clickMaskDismiss: true,
      maskColor: ColorName.black70,
      builder: (_) {
        return Column(
          crossAxisAlignment: CrossAxisAlignment.center,
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Container(
              margin: EdgeInsets.symmetric(horizontal: 33.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.w,
                    ),
                    child: Column(
                      mainAxisSize: MainAxisSize.min,
                      crossAxisAlignment: CrossAxisAlignment.center,
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: [
                        Text(
                          StringName.tip,
                          style: Styles.getTextStyleBlack204W500(16.sp),
                        ),
                        SizedBox(height: 20.h),

                        SizedBox(
                          child: Text.rich(
                            textAlign: TextAlign.center,
                            TextSpan(
                              children: [
                                TextSpan(
                                  text: StringName.textSpanIHaveReadAndAgree,
                                  style: TextStyle(
                                    color: Colors.black.withAlpha(153),
                                    fontSize: 14.sp,
                                    fontWeight: FontWeight.w400,
                                  ),
                                ),
                                TextSpan(
                                  text: "\n",
                                  style: TextStyle(
                                    color: Colors.black.withAlpha(153),
                                    fontSize: 14.sp,
                                    fontWeight: FontWeight.w400,
                                  ),
                                ),
                                ClickTextSpan(
                                  fontSize: 14.sp,
                                  text: StringName.textSpanPrivacyPolicy,
                                  url: WebUrl.privacyPolicy,
                                  color: Color(0xff374BFF),
                                ),

                                TextSpan(
                                  text: StringName.textSpanAnd,
                                  style: TextStyle(
                                    color: Colors.black.withAlpha(153),
                                    fontSize: 14.sp,
                                    fontWeight: FontWeight.w400,
                                  ),
                                ),

                                ClickTextSpan(
                                  fontSize: 14.sp,
                                  text: StringName.textSpanServiceTerms,
                                  url: WebUrl.serviceAgreement,
                                  color: Color(0xff374BFF),
                                ),
                              ],
                            ),
                          ),
                        ),
                        SizedBox(height: 20.h),
                        Row(
                          mainAxisAlignment: MainAxisAlignment.spaceBetween,
                          children: [
                            GestureDetector(
                              onTap: () {
                                if (btnCancel != null) {
                                  btnCancel();
                                }
                                SmartDialog.dismiss();
                              },
                              child: Container(
                                height: 40.h,
                                width: 128.w,
                                alignment: Alignment.center,
                                decoration: ShapeDecoration(
                                  color: const Color(0xFFF5F4F9),
                                  shape: RoundedRectangleBorder(
                                    borderRadius: BorderRadius.circular(50.r),
                                  ),
                                ),
                                child: Text(
                                  StringName.privacyDialogCancel,
                                  style: Styles.getTextStyleBlack102W500(16.sp),
                                ),
                              ),
                            ),
                            GestureDetector(
                              onTap: () {
                                if (btnConfirm != null) {
                                  btnConfirm();
                                }
                                SmartDialog.dismiss(tag: tag);
                              },
                              child: Container(
                                height: 40.h,
                                width: 128.r,
                                alignment: Alignment.center,
                                decoration: Styles.getActivateButtonDecoration(
                                  50.r,
                                ),
                                child: Text(
                                  StringName.privacyDialogConfirm,
                                  style: Styles.getTextStyleWhiteW500(16.sp),
                                ),
                              ),
                            ),
                          ],
                        ),
                      ],
                    ),
                  ),
                ],
              ),
            ),
          ],
        );
      },
    );
  }
}
