import 'package:diplomaticquarterapp/core/model/pharmacy/categorise_parent_model.dart';
import 'package:diplomaticquarterapp/core/viewModels/pharmacy_categorise_view_model.dart';
import 'package:diplomaticquarterapp/widgets/data_display/text.dart';
import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart';
import 'package:diplomaticquarterapp/widgets/text/app_texts_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class ProcedureListWidget extends StatefulWidget {
  final PharmacyCategoriseViewModel model;
  final Function addSelectedHistories;
  final Function(CategoriseParentModel) removeHistory;
  final Function(CategoriseParentModel) addHistory;
  final Function(CategoriseParentModel) addRemarks;

  final bool Function(CategoriseParentModel) isEntityListSelected;
  final List<CategoriseParentModel> masterList;

  ProcedureListWidget(
      {Key key,
      this.model,
      this.addSelectedHistories,
      this.removeHistory,
      this.masterList,
      this.addHistory,
      this.isEntityListSelected,
      this.addRemarks})
      : super(key: key);

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

class _ProcedureListWidgetState extends State<ProcedureListWidget> {
  int selectedType = 0;
  int typeUrgent;
  int typeRegular;

  setSelectedType(int val) {
    setState(() {
      selectedType = val;
    });
  }

  List<CategoriseParentModel> items = List();
  List<String> remarksList = List();
  List<int> typeList = List();

  @override
  void initState() {
    items.addAll(widget.masterList);
    super.initState();
  }

  TextEditingController remarksController = TextEditingController();
  @override
  Widget build(BuildContext context) {
    return Container(
      child: Column(
        children: [
          NetworkBaseView(
            baseViewModel: widget.model,
            child: Container(
              height: MediaQuery.of(context).size.height * 0.35,
              child: Center(
                  child: Container(
                margin: EdgeInsets.only(top: 15),
                decoration: BoxDecoration(
                    borderRadius: BorderRadius.circular(12),
                    color: Colors.white),
                child: ListView(
                  children: [
                    // TextFields(
                    //   hintText:
                    //       'sss', //TranslationBase.of(context).searchProcedures,
                    //   suffixIcon: EvaIcons.search,
                    //   onChanged: (value) {
                    //     filterSearchResults(value);
                    //   },
                    // ),
                    SizedBox(
                      height: 15,
                    ),
                    items.length != 0
                        ? Column(
                            children: items.map((historyInfo) {
                              return Column(
                                children: [
                                  Row(
                                    children: [
                                      Checkbox(
                                          value: widget.isEntityListSelected(
                                              historyInfo),
                                          activeColor: Colors.red[800],
                                          onChanged: (bool newValue) {
                                            selectOption(historyInfo);

                                          }),
                                      Expanded(
                                        child: InkWell(
                                          onTap:(){
                                            selectOption(historyInfo);
                                          },
                                          child: Padding(
                                            padding: const EdgeInsets.symmetric(
                                                horizontal: 10, vertical: 0),
                                            child: Texts(historyInfo.name,
                                                variant: "bodyText",
                                                bold: true,
                                                color: Colors.black),
                                          ),
                                        ),
                                      ),
                                    ],
                                  ),
                                  Divider(
                                    height: 1,
                                  ),
                                ],
                              );
                            }).toList(),
                          )
                        : Center(
                            child: Container(
                              child: AppText(
                                  "There's no procedures for this category",
                                  color: Color(0xFFB9382C)),
                            ),
                          )
                  ],
                ),
              )),
            ),
          ),
          SizedBox(
            height: 10,
          ),
        ],
      ),
    );
  }


  selectOption(historyInfo){
    setState(() {
      if (widget.isEntityListSelected(
          historyInfo)) {
        widget
            .removeHistory(historyInfo);
      } else {
        widget.addHistory(historyInfo);
      }
    });
  }

  void filterSearchResults(String query) {
    List<CategoriseParentModel> dummySearchList = List();
    dummySearchList.addAll(widget.masterList);
    if (query.isNotEmpty) {
      List<CategoriseParentModel> dummyListData = List();
      dummySearchList.forEach((item) {
        if (item.name.toLowerCase().contains(query.toLowerCase())) {
          dummyListData.add(item);
        }
      });
      setState(() {
        items.clear();
        items.addAll(dummyListData);
      });
      return;
    } else {
      setState(() {
        items.clear();
        items.addAll(widget.masterList);
      });
    }
  }
}
