import 'package:diplomaticquarterapp/core/service/AlHabibMedicalService/customer_addresses_service.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

// ignore: must_be_immutable
class SelectLocationDialog extends StatefulWidget {
  final List<AddressInfo> addresses;
  final Function(AddressInfo) onValueSelected;
  AddressInfo selectedAddress;

  SelectLocationDialog(
      {Key key, this.addresses, this.onValueSelected, this.selectedAddress});

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

class _SelectLocationDialogState extends State<SelectLocationDialog> {
  @override
  void initState() {
    super.initState();
    widget.selectedAddress = widget.selectedAddress ?? widget.addresses[0];
  }

  @override
  Widget build(BuildContext context) {
    return SimpleDialog(
      title: Texts(TranslationBase.of(context).selectAddress),
      children: [
        Column(
          children: [
            Container(
              height: 150,
              child: SingleChildScrollView(
                child: Column(
                  children: [
                    Divider(),
                    ...List.generate(
                      widget.addresses.length,
                          (index) => Column(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: [
                          SizedBox(
                            height: 2,
                          ),
                          Row(
                            children: <Widget>[
                              Expanded(
                                flex: 1,
                                child: InkWell(
                                  onTap: () {
                                    setState(() {
                                      widget.selectedAddress = widget.addresses[index];
                                    });
                                  },
                                  child: ListTile(
                                    title: Text(widget.addresses[index].address1),
                                    leading: Radio(
                                      value: widget.addresses[index],
                                      groupValue: widget.selectedAddress,
                                      activeColor: Colors.red[800],
                                      onChanged: (value) {
                                        setState(() {
                                          widget.selectedAddress = value;
                                        });
                                      },
                                    ),
                                  ),
                                ),
                              )
                            ],
                          ),
                          SizedBox(
                            height: 5.0,
                          ),
                        ],
                      ),
                    ),
                    SizedBox(
                      height: 5.0,
                    ),
                  ],
                ),
              ),
            ),
            Row(
              // mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: <Widget>[
                Expanded(
                  flex: 1,
                  child: InkWell(
                    onTap: () {
                      Navigator.pop(context);
                    },
                    child: Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Container(
                        child: Center(
                          child: Texts(
                            TranslationBase.of(context).cancel.toUpperCase(),
                            color: Colors.red,
                          ),
                        ),
                      ),
                    ),
                  ),
                ),
                Container(
                  width: 1,
                  height: 30,
                  color: Colors.grey[500],
                ),
                Expanded(
                  flex: 1,
                  child: InkWell(
                    onTap: () {
                      widget.onValueSelected(widget.selectedAddress);
                      Navigator.pop(context);
                    },
                    child: Padding(
                      padding: const EdgeInsets.all(8.0),
                      child: Center(
                          child: Texts(
                            TranslationBase.of(context).ok,
                            fontWeight: FontWeight.w400,
                          )),
                    ),
                  ),
                ),
              ],
            )
          ],
        )
      ],
    );
  }
}
