import 'package:farmer_client/models/entities/Address.dart';
import 'package:farmer_client/pages/addressList/widget/AddressCard.dart';
import 'package:farmer_client/widgets/DefaultButton.dart';
import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:get/get.dart';


class AddressList extends StatefulWidget {
  const AddressList({Key? key}) : super(key: key);

  @override
  _AddressList createState() => _AddressList();
}

class _AddressList extends State<AddressList> {

  List<Address> addressList = [
    Address.fromJson({'address': '777', 'isDefault': false}),
    Address.fromJson({'address': '999', 'isDefault': false}),
    Address.fromJson({'address': '这是一个正经的地址', 'isDefault': false}),
  ];
  void onChange(index) {
    setState(() {
      addressList.forEach((element) {
        if (element.isDefault == true) {
          element.isDefault = false;
        }
      });
      addressList[index].isDefault = true;
    });
  }
  void onDelete(index){
    showDialog(
        context: context,
        builder: (context) {
          return AlertDialog(
              content: Text("您确定要删除此地址吗?"),
              actions: <Widget>[
                TextButton(
                  child: Text("取消"),
                  onPressed: () {
                    print("取消");
                    Navigator.pop(context, 'Cancle');
                  },
                ),
                TextButton(
                    child: Text("确定"),
                    onPressed: () {
                      // setState(() {
                      //   addressList.remove(addressList[e]);
                      // });
                      Navigator.pop(context, "Ok");
                      Fluttertoast.showToast(
                          msg: '删除成功!');
                    })
              ]);
        });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        elevation: 0,
        centerTitle: true,
        backgroundColor: Colors.white,
        title: Text(
          '地址管理',
          style: TextStyle(
              color: Colors.black,
              fontSize: 17.sp,
              letterSpacing: 2,
              fontWeight: FontWeight.bold),
        ),
      ),
      body: ListView(
        children: [
          Container(
            padding: EdgeInsets.all(15.w),
            child: Column(
              //左对齐
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                Column(
                    children: addressList
                        .asMap()
                        .keys
                        .map(
                          (e) => AddressCard(
                            No: e + 1,
                            item: addressList[e],
                            onChange: () {
                              onChange(e);
                            },
                            onEdit: () {
                              Get.toNamed('/addAddress',arguments: {'item':addressList[e]});
                            },
                            onDelete: () {
                              onDelete(e);
                            },
                          ),
                        )
                        .toList()),
                DefaultButton(
                  color: const Color(0xffffffff),
                  backColor: const Color(0xFFFF703B),
                  width: 345.w,
                  height: 49.h,
                  text: '+新增收货地址',
                  onPressed: () {
                    Get.toNamed('/addAddress');
                  },
                  margin: const EdgeInsets.all(0),
                  fontSize: 20.sp,
                  radius: 24.5.w,
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}