import 'dart:async';
import 'package:cherry_toast/cherry_toast.dart';
import 'package:cherry_toast/resources/arrays.dart';
import 'package:flutter/material.dart';
import 'package:initial_folder/helper/validator.dart';
import 'package:initial_folder/models/carts_model.dart';
import 'package:initial_folder/providers/carts_provider.dart';
import 'package:initial_folder/providers/total_price_provider.dart';
import 'package:initial_folder/screens/cart/components/cart_list.dart';
import 'package:initial_folder/screens/checkout/checkout_cart_page.dart';
import 'package:initial_folder/screens/checkout/components/field_kupon.dart';
import 'package:initial_folder/size_config.dart';
import 'package:initial_folder/theme.dart';
import 'package:initial_folder/widgets/login_regist/default_button.dart';
import 'package:provider/provider.dart';
import 'package:initial_folder/widgets/custom_navigator.dart';
import 'package:initial_folder/providers/order_provider.dart' as orderProv;
import 'package:initial_folder/providers/radeem_voucher_provider.dart'
    as radeemVoucher;

class CartPage extends StatefulWidget {
  const CartPage({
    Key? key,
    this.idcourse,
    this.cartsModel,
    this.isiVoucher,
  }) : super(key: key);

  final String? idcourse;
  final DataCartsModel? cartsModel;
  final String? isiVoucher;

  @override
  State<CartPage> createState() => _CartPageState();
}

class _CartPageState extends State<CartPage> {
  @override
  void initState() {
    super.initState();
    WidgetsBinding.instance.addPostFrameCallback((_) {
      Provider.of<CartsProvider>(context, listen: false).getCarts();
    });
  }
  bool isChecked = true;
  Set<int> selectedItems = {};
  bool isMultiSelectionMode = false;
  bool isToastShowing = false;

  void _onItemLongPressed(int index) {
    setState(() {
      isMultiSelectionMode = true;
      selectedItems.add(index);
    });
  }

  void _onItemTapped(int index) {
    // setState(() {
    //   if (selectedItems.contains(index)) {
    //     selectedItems.remove(index);
    //     if (selectedItems.isEmpty) {
    //       isMultiSelectionMode = false;
    //     }
    //   } else {
    //     selectedItems.add(index);
    //   }
    // });
  }

  void _selectAllItems(bool selectAll, int itemCount) {
    setState(() {
      if (selectAll) {
        for (int i = 0; i < itemCount; i++) {
          selectedItems.add(i);
        }
      } else {
        selectedItems.clear();
      }
      isChecked = selectAll;
    });
  }

  void _showToast(String message) {
    isToastShowing = true;
    CherryToast.error(
      title: Text(message),
      animationDuration: Durations.medium1,
      animationType: AnimationType.fromTop,
      autoDismiss: true,
    ).show(context);
    Timer(Duration(seconds: 2), () {
      isToastShowing = false;
    });
  }

  @override
  Widget build(BuildContext context) {
    List<String> idCarts = [];
    Provider.of<orderProv.OrderProvider>(context, listen: false).clear();
    TextEditingController kuponController = TextEditingController();
    var kuponIsApplied = TextEditingController();
    final selectedTotalPrice = Provider.of<TotalPriceProvider>(context);

    Widget _validasiKupon() {
      return Dialog(
        elevation: 5.0,
        child: Padding(
          padding: const EdgeInsets.all(29),
          child: Text(
            'Kupon tidak valid atau sudah habis',
            textAlign: TextAlign.center,
          ),
        ),
        shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10)),
      );
    }

    Widget kupon(List<String> idKursus) {
      Provider.of<orderProv.OrderProvider>(context).clear();
      return Consumer<CartsProvider>(
        builder: (context, state, _) {
          var resultData = state.result!.data.length;

          for (var i = 0; i <= resultData - 1; i++) {
            if (state.result?.data[i].coupon != null) {
              kuponIsApplied = TextEditingController(
                  text: state.result?.data[i].coupon?.codeCoupon ?? '');
              return Column(
                children: [
                  Row(
                    children: [
                      Expanded(
                        child: Container(
                          padding: EdgeInsets.only(
                              left: getProportionateScreenWidth(4),
                              top: getProportionateScreenHeight(14)),
                          child: FieldKupon(
                            prefix: IconButton(
                              onPressed: () async {
                                await Provider.of<
                                            radeemVoucher
                                            .RadeemVoucherProvider>(context,
                                        listen: false)
                                    .deleteCoupon(kuponIsApplied.text);
                                kuponIsApplied.text = '';
                                kuponIsApplied.clear();
                                Provider.of<orderProv.OrderProvider>(context,
                                        listen: false)
                                    .clear();
                                await Provider.of<CartsProvider>(context,
                                        listen: false)
                                    .getCarts();
                              },
                              icon: Icon(Icons.close),
                              iconSize: 15,
                              color: secondaryColor,
                            ),
                            controler: kuponIsApplied,
                          ),
                        ),
                      ),
                      SizedBox(width: getProportionateScreenWidth(13)),
                      Container(
                        child: ElevatedButton(
                          style: ElevatedButton.styleFrom(
                            backgroundColor: primaryColor,
                            shape: RoundedRectangleBorder(
                              borderRadius: BorderRadius.circular(6),
                            ),
                            padding: EdgeInsets.symmetric(
                              horizontal: getProportionateScreenWidth(12),
                              vertical: getProportionateScreenHeight(8),
                            ),
                          ),
                          onPressed: () async {
                            final voucher = kuponIsApplied.text;
                            if (await Provider.of<
                                        radeemVoucher.RadeemVoucherProvider>(
                                    context,
                                    listen: false)
                                .redeemVoucherCart(
                              idKursus,
                              voucher,
                            )) {
                              kuponIsApplied = TextEditingController(
                                  text: state
                                      .result?.data.last.coupon?.codeCoupon);

                              Navigator.of(context).pushReplacement(
                                MaterialPageRoute(
                                  builder: (context) => CartPage(),
                                ),
                              );
                            } else {
                              showDialog(
                                barrierColor: Color.fromARGB(70, 24, 24, 24),
                                context: context,
                                builder: (context) {
                                  return _validasiKupon();
                                },
                              );
                            }
                          },
                          child: Row(
                            crossAxisAlignment: CrossAxisAlignment.center,
                            mainAxisAlignment: MainAxisAlignment.start,
                            children: [
                              Text(
                                'Gunakan',
                                textAlign: TextAlign.start,
                                style: thirdTextStyle.copyWith(
                                  color: baruTextutih,
                                  fontSize: getProportionateScreenWidth(13),
                                  fontWeight: reguler,
                                ),
                              ),
                              SizedBox(width: getProportionateScreenWidth(8)),
                              Image.asset(
                                "assets/icons/cart_gunakan.png",
                                color: baruTextutih,
                                width: getProportionateScreenWidth(16),
                              ),
                            ],
                          ),
                        ),
                      ),
                    ],
                  ),
                ],
              );
            }
          }
          return Column(
            children: [
              Row(
                mainAxisAlignment: MainAxisAlignment.spaceBetween,
                children: [
                  Expanded(
                    child: Container(
                      padding: EdgeInsets.only(
                          left: getProportionateScreenWidth(4),
                          top: getProportionateScreenHeight(14)),
                      child: FieldKupon(
                        controler: kuponController,
                      ),
                    ),
                  ),
                  SizedBox(width: 14),
                  ElevatedButton(
                    style: ElevatedButton.styleFrom(
                      backgroundColor: primaryColor,
                      shape: RoundedRectangleBorder(
                        borderRadius: BorderRadius.circular(6),
                      ),
                      padding: EdgeInsets.symmetric(
                        horizontal: getProportionateScreenWidth(12),
                        vertical: getProportionateScreenHeight(8),
                      ),
                    ),
                    onPressed: () async {
                      final voucher = kuponController.text;

                      if (await Provider.of<
                                  radeemVoucher.RadeemVoucherProvider>(context,
                              listen: false)
                          .redeemVoucherCart(idKursus, voucher)) {
                        Provider.of<CartsProvider>(context, listen: false)
                            .getCarts();
                        kuponController.clear();
                      } else {
                        showDialog(
                          barrierColor: Color.fromARGB(70, 24, 24, 24),
                          context: context,
                          builder: (context) {
                            return _validasiKupon();
                          },
                        );
                      }
                    },
                    child: Row(
                      crossAxisAlignment: CrossAxisAlignment.center,
                      mainAxisAlignment: MainAxisAlignment.start,
                      children: [
                        Text(
                          'Gunakan',
                          textAlign: TextAlign.start,
                          style: thirdTextStyle.copyWith(
                            color: baruTextutih,
                            fontSize: getProportionateScreenWidth(13),
                            fontWeight: reguler,
                          ),
                        ),
                        SizedBox(width: getProportionateScreenWidth(8)),
                        Image.asset(
                          "assets/icons/cart_gunakan.png",
                          width: getProportionateScreenWidth(16),
                          color: baruTextutih,
                        ),
                      ],
                    ),
                  ),
                ],
              )
            ],
          );
        },
      );
    }

    Widget custombottomCart(
        String price, String total, List<String> coursesId) {
      return SingleChildScrollView(
        child: Container(
          color: Theme.of(context).brightness == Brightness.dark
              ? seventeenColor.withOpacity(0.9)
              : baruTextutih.withOpacity(0.3),
          child: Column(
            children: [
              Padding(
                padding: EdgeInsets.only(
                  left: getProportionateScreenWidth(16),
                  right: getProportionateScreenWidth(16),
                  top: getProportionateScreenHeight(12),
                ),
                child: Row(
                  children: [
                    Text(
                      'Subtotal Harga Kursus',
                      style: thirdTextStyle.copyWith(
                        fontWeight: reguler,
                        fontSize: SizeConfig.blockHorizontal! * 3,
                      ),
                    ),
                    Spacer(),
                    SizedBox(width: getProportionateScreenWidth(8)),
                    if (int.parse(price) < 50000)
                      RichText(
                        text: TextSpan(
                          children: [
                            TextSpan(
                              text: numberFormat(total),
                              style: primaryTextStyle.copyWith(
                                letterSpacing: 0.5,
                                decoration: TextDecoration.lineThrough,
                                color: fourthColor,
                                fontWeight: reguler,
                                fontSize: SizeConfig.blockHorizontal! * 2.8,
                              ),
                            ),
                            WidgetSpan(
                                child: SizedBox(
                                    width: getProportionateScreenWidth(8))),
                            TextSpan(
                              text: numberFormat(int.parse(price) < 50000
                                  ? (int.parse(price) - 5000).toString()
                                  : price),
                              style: thirdTextStyle.copyWith(
                                letterSpacing: 0.23,
                                fontWeight: reguler,
                                fontSize: SizeConfig.blockHorizontal! * 2.8,
                                color: Theme.of(context).colorScheme.onPrimary,
                              ),
                            ),
                          ],
                        ),
                      )
                    else
                      RichText(
                        text: TextSpan(
                          children: [
                            TextSpan(
                              text: "",
                              style: primaryTextStyle.copyWith(
                                letterSpacing: 0.5,
                                decoration: TextDecoration.lineThrough,
                                color: fourthColor,
                                fontWeight: reguler,
                                fontSize: SizeConfig.blockHorizontal! * 2.8,
                              ),
                            ),
                            WidgetSpan(
                                child: SizedBox(
                                    width: getProportionateScreenWidth(8))),
                            TextSpan(
                              text: numberFormat(price),
                              style: thirdTextStyle.copyWith(
                                letterSpacing: 0.23,
                                fontWeight: reguler,
                                fontSize: SizeConfig.blockHorizontal! * 2.8,
                                color: Theme.of(context).colorScheme.onPrimary,
                              ),
                            )
                          ],
                        ),
                      ),
                  ],
                ),
              ),
              SizedBox(height: getProportionateScreenHeight(3)),
              Padding(
                padding: EdgeInsets.symmetric(
                    horizontal: getProportionateScreenWidth(16)),
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: [
                    Text(
                      'Biaya Layanan',
                      style: thirdTextStyle.copyWith(
                        fontWeight: reguler,
                        fontSize: SizeConfig.blockHorizontal! * 3,
                      ),
                    ),
                    Text(
                      numberFormat(int.parse(price) < 50000 ? "5000" : "0"),
                      style: thirdTextStyle.copyWith(
                        fontWeight: reguler,
                        fontSize: SizeConfig.blockHorizontal! * 3,
                      ),
                    ),
                  ],
                ),
              ),
              SizedBox(height: getProportionateScreenHeight(3)),
              Padding(
                padding: EdgeInsets.symmetric(
                    horizontal: getProportionateScreenWidth(16)),
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: [
                    Text(
                      'Potongan Kupon',
                      style: thirdTextStyle.copyWith(
                        fontWeight: reguler,
                        fontSize: SizeConfig.blockHorizontal! * 3,
                      ),
                    ),
                    Text(
                      numberFormat("0"),
                      style: thirdTextStyle.copyWith(
                        fontWeight: reguler,
                        fontSize: SizeConfig.blockHorizontal! * 3,
                      ),
                    ),
                  ],
                ),
              ),
              SizedBox(height: getProportionateScreenHeight(16)),
              Padding(
                padding: EdgeInsets.symmetric(
                    horizontal: getProportionateScreenWidth(16)),
                child: Row(
                  mainAxisAlignment: MainAxisAlignment.spaceBetween,
                  children: [
                    Text(
                      'Total Bayar',
                      style: thirdTextStyle.copyWith(
                        fontWeight: reguler,
                        fontSize: SizeConfig.blockHorizontal! * 3.2,
                      ),
                    ),
                    Text(
                      numberFormat(price),
                      style: thirdTextStyle.copyWith(
                        fontWeight: bold,
                        fontSize: SizeConfig.blockHorizontal! * 3.2,
                      ),
                    ),
                  ],
                ),
              ),
              SizedBox(height: getProportionateScreenHeight(12)),
              Consumer<CartsProvider>(
                builder: (context, state, _) {
                  int _hasil = 0;
                  var priceDiscount = state.result!.data
                      .map((e) => int.parse(e.discountPrice ?? '0'))
                      .toList();

                  var diskonHarga = 0;
                  for (var i = 0; i < state.data.length; i++) {
                    diskonHarga += priceDiscount[i];
                  }
                  var potonganKupon = state.result!.potonganKupon;

                  return Container(
                    color: Theme.of(context).colorScheme.primaryContainer,
                    height: getProportionateScreenHeight(52),
                    child: Padding(
                      padding: EdgeInsets.symmetric(
                          horizontal: getProportionateScreenWidth(16)),
                      child: Row(
                        children: [
                          // GestureDetector(
                          //   onTap: () {
                          //     _selectAllItems(
                          //         !isChecked, state.result!.data.length);
                          //   },
                          //   child: Container(
                          //     decoration: BoxDecoration(
                          //       color: isChecked
                          //           ? (Theme.of(context).brightness ==
                          //                   Brightness.light
                          //               ? baruTexthitam
                          //               : baruTextutih)
                          //           : Theme.of(context).brightness ==
                          //                   Brightness.light
                          //               ? baruTextutih
                          //               : seventeenColor,
                          //       shape: BoxShape.rectangle,
                          //       border: Border.all(
                          //         color: isChecked
                          //             ? Theme.of(context).brightness ==
                          //                     Brightness.light
                          //                 ? baruTexthitam
                          //                 : baruTextutih
                          //             : (Theme.of(context).brightness ==
                          //                     Brightness.light
                          //                 ? baruTexthitam.withOpacity(0.7)
                          //                 : Colors.grey),
                          //         width: getProportionateScreenWidth(3),
                          //       ),
                          //       borderRadius: BorderRadius.circular(6),
                          //     ),
                          //     width: getProportionateScreenWidth(18),
                          //     height: getProportionateScreenHeight(16),
                          //     child: isChecked
                          //         ? Icon(
                          //             Icons.check,
                          //             size: getProportionateScreenWidth(13),
                          //             color: Theme.of(context)
                          //                 .colorScheme
                          //                 .background,
                          //           )
                          //         : null,
                          //   ),
                          // ),
                          SizedBox(width: getProportionateScreenWidth(5)),
                          // Text(
                          //   'Semua',
                          //   style: thirdTextStyle.copyWith(
                          //     fontWeight: reguler,
                          //     fontSize: SizeConfig.blockHorizontal! * 3,
                          //   ),
                          // ),
                          SizedBox(width: getProportionateScreenWidth(13)),
                          Column(
                            mainAxisAlignment: MainAxisAlignment.center,
                            crossAxisAlignment: CrossAxisAlignment.start,
                            children: [
                              Text(
                                'Total',
                                style: thirdTextStyle.copyWith(
                                  fontWeight: reguler,
                                  fontSize: SizeConfig.blockHorizontal! * 3.4,
                                ),
                              ),
                              Text(
                                numberFormat(price),
                                style: thirdTextStyle.copyWith(
                                  fontWeight: bold,
                                  fontSize: SizeConfig.blockHorizontal! * 3.8,
                                ),
                              ),
                            ],
                          ),
                          Spacer(),
                          Container(
                            child: DefaultButton(
                              isCart: true,
                              text: 'Checkout (${selectedItems.length})',
                              press: () {
                                if (!isToastShowing) {
                                  if (selectedItems.isEmpty) {
                                    _showToast("Anda belum memilih kursus!");
                                  } else {
                                    selectedTotalPrice.selectedTotalPrice =
                                        int.parse(price);
                                    setState(() {
                                      if (potonganKupon != null) {
                                        _hasil = potonganKupon;
                                      }
                                    });
                                    Navigator.of(context).push(
                                      CustomNavigator(
                                        child: CheckoutCartPage(
                                          idCart: idCarts,
                                          potonganKupon: _hasil,
                                          discountHarga: diskonHarga,
                                          isCart: true,
                                        ),
                                      ),
                                    );
                                  }
                                }
                              },
                            ),
                          ),
                        ],
                      ),
                    ),
                  );
                },
              ),
            ],
          ),
        ),
      );
    }

    return Scaffold(
      resizeToAvoidBottomInset: true,
      appBar: AppBar(
        backgroundColor: Theme.of(context).colorScheme.background,
        centerTitle: true,
        title: Text(
          'Keranjang',
          style: thirdTextStyle.copyWith(
            letterSpacing: 1,
            fontWeight: semiBold,
            fontSize: getProportionateScreenWidth(14),
          ),
        ),
      ),
      body: Consumer<CartsProvider>(
        builder: (context, state, _) {
          if (state.state == ResultState.Loading) {
            return Center(
              child: CircularProgressIndicator(
                color: primaryColor,
                strokeWidth: 2,
              ),
            );
          } else if (state.state == ResultState.HasData) {
            List<String> coursesId = [];

            var carts = state.result!.data;
            for (int i = 0; i < carts.length; i++) {
              idCarts.add(carts[i].cartId!);
            }
            for (int i = 0; i < carts.length; i++) {
              coursesId.add(carts[i].courseId!);
            }
            WidgetsBinding.instance.addPostFrameCallback((_) {
              if (state.result != null && selectedItems.isEmpty) {
                _selectAllItems(true, state.result!.data.length);
              }
            });
            return Stack(
              children: [
                SingleChildScrollView(
                  child: Container(
                    margin:
                        EdgeInsets.only(left: getProportionateScreenWidth(16)),
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Text(
                          '${state.result?.data.length} Kursus di Keranjang ',
                          style: thirdTextStyle.copyWith(
                            letterSpacing: 1,
                            fontWeight: semiBold,
                            fontSize: getProportionateScreenWidth(14),
                          ),
                        ),
                        SizedBox(height: getProportionateScreenHeight(13)),
                        ListView.builder(
                          physics: NeverScrollableScrollPhysics(),
                          shrinkWrap: true,
                          itemCount: state.result!.data.length,
                          itemBuilder: (context, index) {
                            var carts = state.result!.data[index];

                            Provider.of<orderProv.OrderProvider>(context)
                                .addOrder(
                              id: carts.courseId,
                              title: carts.title,
                              price: carts.price,
                              imageUrl: carts.thumbnail ??
                                  'https://vocasia.id/uploads/thumbnails/course_thumbnails/course_thumbnail_default_63.jpg',
                              discountPrice: carts.finalPrice,
                              instructor: carts.instructor!,
                            );
                            bool isSelected = selectedItems.contains(index);
                            return GestureDetector(
                              onTap: () => _onItemTapped(index),
                              child: CartList(
                                idCourse: carts.courseId ?? '0',
                                id: carts.cartId ?? '',
                                image: carts.thumbnail ??
                                    'https://vocasia.id/uploads/thumbnails/course_thumbnails/course_thumbnail_default_63.jpg',
                                title: carts.title ?? '',
                                instruktur: carts.instructor ?? '',
                                price: carts.price ?? '',
                                discountPrice: carts.finalPrice ?? '',
                                isSelected: isSelected,
                              ),
                            );
                          },
                        ),
                        SizedBox(height: 90),
                      ],
                    ),
                  ),
                ),
              ],
            );
          } else if (state.state == ResultState.NoData) {
            return SingleChildScrollView(
              child: Column(
                crossAxisAlignment: CrossAxisAlignment.center,
                mainAxisAlignment: MainAxisAlignment.start,
                children: [
                  SizedBox(height: 48),
                  Container(
                    padding: EdgeInsets.symmetric(
                        horizontal: getProportionateScreenWidth(16)),
                    child: Center(
                      child: Column(
                        children: [
                          Container(
                            width: getProportionateScreenWidth(100),
                            height: getProportionateScreenHeight(100),
                            child: ColorFiltered(
                              colorFilter: ColorFilter.mode(
                                Theme.of(context).colorScheme.onPrimary,
                                BlendMode.srcATop,
                              ),
                              child: Image.asset('assets/images/search.png'),
                            ),
                          ),
                          SizedBox(height: 16),
                          Text(
                            "Keranjang Kosong",
                            style: thirdTextStyle.copyWith(
                              letterSpacing: 1,
                              fontWeight: semiBold,
                              fontSize: getProportionateScreenWidth(14),
                              color: Theme.of(context).colorScheme.onPrimary,
                            ),
                          ),
                          SizedBox(height: 4),
                          Text(
                            "Keranjang kamu kosong, tetap berbelanja dan cari kursus",
                            textAlign: TextAlign.center,
                            style: thirdTextStyle.copyWith(
                              letterSpacing: 0.5,
                              fontWeight: reguler,
                              fontSize: getProportionateScreenWidth(12),
                              color: Theme.of(context).colorScheme.onPrimary,
                            ),
                          ),
                          SizedBox(height: 16),
                          Container(
                            margin: EdgeInsets.symmetric(
                                horizontal: getProportionateScreenWidth(78),
                                vertical: getProportionateScreenHeight(10)),
                            child: DefaultButton(
                              weight: reguler,
                              text: 'Belanja Kursus',
                              press: () {
                                Navigator.of(context).pop();
                              },
                            ),
                          ),
                        ],
                      ),
                    ),
                  ),
                ],
              ),
            );
          } else if (state.state == ResultState.Error) {
            return AlertDialog(
              title: const Text('Koneksi Internet'),
              content: const Text('Terjadi Kesalahan'),
              actions: <Widget>[
                TextButton(
                  onPressed: () => Navigator.pop(context, 'Cancel'),
                  child: const Text('Cancel'),
                ),
              ],
            );
          } else {
            return Center(child: Text(''));
          }
        },
      ),
      bottomNavigationBar: Consumer<CartsProvider>(
        builder: (context, state, _) {
          if (state.state == ResultState.Loading) {
            return Container(
              width: double.infinity,
              height: getProportionateScreenHeight(121),
              child: Center(
                child: CircularProgressIndicator(
                  color: primaryColor,
                  strokeWidth: 2,
                ),
              ),
            );
          } else if (state.state == ResultState.HasData) {
            var total = state.result!.data.map((e) {
              if (e.price != null && e.discountPrice != null) {
                return int.parse(e.discountPrice!) == 0
                    ? 0
                    : int.parse(e.price!);
              } else {
                return 0;
              }
            }).toList();
            var result = 0;
            for (var i = 0; i < total.length; i++) {
              result += total[i];
            }
            Provider.of<orderProv.OrderProvider>(context)
                .getTotalPrice((state.result?.totalPayment.toString() ?? '0'));
            var carts = state.result!.data;
            List<String> coursesId = [];

            for (int i = 0; i < carts.length; i++) {
              coursesId.add(carts[i].courseId!);
            }

            selectedTotalPrice.selectedSubTotal = result.toString();

            return custombottomCart(
              state.result?.totalPayment.toString() ?? '0',
              result.toString(),
              coursesId,
            );
          } else if (state.state == ResultState.NoData) {
            return Text(
              "",
              style: secondaryTextStyle.copyWith(
                letterSpacing: 1,
                fontWeight: semiBold,
                fontSize: getProportionateScreenWidth(14),
                color: tenthColor,
              ),
            );
          } else if (state.state == ResultState.Error) {
            return Text('');
          } else {
            return Center(child: Text(''));
          }
        },
      ),
    );
  }
}

// Align(
                //   alignment: Alignment.bottomCenter,
                //   child: SingleChildScrollView(
                //     child: Container(
                //       padding: EdgeInsets.symmetric(
                //           horizontal: getProportionateScreenWidth(16)),
                //       child: Column(
                //         crossAxisAlignment: CrossAxisAlignment.start,
                //         children: [
                //           Text(
                //             "Promotions",
                //             style: thirdTextStyle.copyWith(
                //               fontWeight: semiBold,
                //               letterSpacing: 1,
                //               fontSize: SizeConfig.blockHorizontal! * 3.4,
                //             ),
                //           ),
                //           kupon(coursesId),
                //         ],
                //       ),
                //     ),
                //   ),
                // ),