import 'package:doctor_app_flutter/models/SOAP/master_key_model.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:flutter/material.dart';

class MasterKeyDailog extends StatefulWidget {
  final List<MasterKeyModel> list;
  final okText;
  final Function(MasterKeyModel) okFunction;
  MasterKeyModel selectedValue;

  MasterKeyDailog(
      {@required this.list,
      @required this.okText,
      @required this.okFunction});

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

class _MasterKeyDailogState extends State<MasterKeyDailog> {
  @override
  void initState() {
    super.initState();
    widget.selectedValue = widget.selectedValue ?? widget.list[0];
  }

  @override
  Widget build(BuildContext context) {
    return showAlertDialog(context);
  }

  showAlertDialog(BuildContext context) {
    // set up the buttons
    Widget cancelButton = FlatButton(
        child: Text(TranslationBase.of(context).cancel),
        onPressed: () {
          Navigator.of(context).pop();
        });
    Widget continueButton = FlatButton(
        child: Text(this.widget.okText),
        onPressed: () {
          this.widget.okFunction(widget.selectedValue);
          Navigator.of(context).pop();
        });
// set up the AlertDialog
    AlertDialog alert = AlertDialog(
      // title: Text(widget.title),
      content: createDialogList(),
      actions: [
        cancelButton,
        continueButton,
      ],
    );
    return alert;
  }

  Widget createDialogList() {
    return Container(
      height: MediaQuery.of(context).size.height * 0.5,
      child: SingleChildScrollView(
        child: Column(
          children: [
            ...widget.list
                .map((item) => RadioListTile(
                      title: Text(item.nameEn.toString()),
                      groupValue: widget.selectedValue.id.toString(),
                      value: item.id.toString(),
                      activeColor: Colors.blue.shade700,
                      selected: item.id.toString() == widget.selectedValue.id.toString(),
                      onChanged: (val) {
                        setState(() {
                          widget.selectedValue = item;
                        });
                      },
                    ))
                .toList()
          ],
        ),
      ),
    );
  }

  static closeAlertDialog(BuildContext context) {
    Navigator.of(context).pop();
  }
}
