/* 
 * This file is part of Stack Wallet.
 * 
 * Copyright (c) 2023 Cypher Stack
 * All Rights Reserved.
 * The code is distributed under GPLv3 license, see LICENSE file for details.
 * Generated by Cypher Stack on 2023-05-26
 *
 */

import 'package:flutter/material.dart';
import '../utilities/text_styles.dart';
import 'conditional_parent.dart';
import 'desktop/desktop_dialog.dart';
import 'desktop/desktop_dialog_close_button.dart';
import 'desktop/primary_button.dart';
import 'desktop/secondary_button.dart';
import 'exchange/trocador/trocador_kyc_icon.dart';
import 'exchange/trocador/trocador_rating_type_enum.dart';
import 'stack_dialog.dart';

class TrocadorKYCRatingInfo extends StatelessWidget {
  const TrocadorKYCRatingInfo({super.key});

  @override
  Widget build(BuildContext context) {
    final small = MediaQuery.of(context).size.width <= 500;

    return ConditionalParent(
      condition: !small,
      builder: (child) => DesktopDialog(
        maxHeight: double.infinity,
        child: Column(
          children: [
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: [
                Padding(
                  padding: const EdgeInsets.only(left: 32),
                  child: Text(
                    "Trocador KYC Rating",
                    style: STextStyles.desktopH3(context),
                  ),
                ),
                const DesktopDialogCloseButton(),
              ],
            ),
            const SizedBox(
              height: 16,
            ),
            Padding(
              padding: const EdgeInsets.symmetric(
                horizontal: 32,
              ),
              child: child,
            ),
            Padding(
              padding: const EdgeInsets.all(32),
              child: Row(
                children: [
                  const Spacer(),
                  const SizedBox(
                    width: 16,
                  ),
                  Expanded(
                    child: PrimaryButton(
                      label: "Ok",
                      buttonHeight: ButtonHeight.l,
                      onPressed: Navigator.of(context).pop,
                    ),
                  ),
                ],
              ),
            ),
          ],
        ),
      ),
      child: ConditionalParent(
        condition: small,
        builder: (child) {
          return StackDialogBase(
            child: child,
          );
        },
        child: Column(
          children: [
            if (small)
              Text(
                "Trocador KYC Rating",
                style: STextStyles.pageTitleH2(context),
              ),
            if (small)
              const SizedBox(
                height: 16,
              ),
            const _Rating(
              kycType: TrocadorKYCType.a,
              text: "Never asks for user verification.",
            ),
            const SizedBox(
              height: 16,
            ),
            const _Rating(
              kycType: TrocadorKYCType.b,
              text: "Rarely asks for verification. Refunds if refused.",
            ),
            const SizedBox(
              height: 16,
            ),
            const _Rating(
              kycType: TrocadorKYCType.c,
              text:
                  "Rarely asks for verification. Refunds if refused, unless a "
                  "legal order prevents it.",
            ),
            const SizedBox(
              height: 16,
            ),
            const _Rating(
              kycType: TrocadorKYCType.d,
              text:
                  "Rarely asks for verification. In case of refusal may block "
                  "funds indefinitely without a legal order.",
            ),
            if (small)
              Padding(
                padding: const EdgeInsets.only(
                  top: 16,
                ),
                child: Row(
                  children: [
                    const Spacer(),
                    const SizedBox(
                      width: 16,
                    ),
                    Expanded(
                      child: SecondaryButton(
                        label: "Close",
                        onPressed: Navigator.of(context).pop,
                      ),
                    ),
                  ],
                ),
              ),
          ],
        ),
      ),
    );
  }
}

class _Rating extends StatelessWidget {
  const _Rating({
    super.key,
    required this.kycType,
    required this.text,
  });

  final TrocadorKYCType kycType;
  final String text;

  @override
  Widget build(BuildContext context) {
    return Row(
      crossAxisAlignment: CrossAxisAlignment.start,
      children: [
        TrocadorKYCIcon(
          kycType: kycType,
          width: 20,
          height: 20,
        ),
        const SizedBox(
          width: 8,
        ),
        Flexible(
          child: Text(
            text,
            style: STextStyles.subtitle(context),
          ),
        ),
      ],
    );
  }
}