import 'package:diplomaticquarterapp/config/shared_pref_kay.dart';
import 'package:diplomaticquarterapp/models/Appointments/DentalChiefComplaintsModel.dart';
import 'package:diplomaticquarterapp/models/Appointments/SearchInfoModel.dart';
import 'package:diplomaticquarterapp/pages/BookAppointment/widgets/DentalComplaintCard.dart';
import 'package:diplomaticquarterapp/pages/livecare/widgets/clinic_card.dart';
import 'package:diplomaticquarterapp/services/clinic_services/get_clinic_service.dart';
import 'package:diplomaticquarterapp/uitl/app_shared_preferences.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/material.dart';
import 'package:smart_progress_bar/smart_progress_bar.dart';

class DentalComplaints extends StatefulWidget {
  SearchInfo searchInfo;

  DentalComplaints({@required this.searchInfo});

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

class _DentalComplaintsState extends State<DentalComplaints> {
  List<ListDentalChiefComplain> complaintsList = [];
  AppSharedPreferences sharedPref = AppSharedPreferences();
  bool isDataLoaded = false;
  var languageID;

  @override
  void initState() {
    WidgetsBinding.instance
        .addPostFrameCallback((_) => getChiefComplaintsList());
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return AppScaffold(
      isShowAppBar: true,
      appBarTitle: "Symptoms",
      body: Container(
        margin: EdgeInsets.fromLTRB(10.0, 10.0, 10.0, 0.0),
        child: ListView.builder(
          itemCount: complaintsList.length,
          itemBuilder: (BuildContext context, int index) {
            return Container(
                margin: EdgeInsets.only(bottom: 10.0),
                child: DentalComplaintCard(
                  listDentalChiefComplain: complaintsList[index],
                  languageID: languageID,
                ),
            );
          },
        ),
      ),
    );
  }

  getLanguageID() async {
    languageID = await sharedPref.getString(APP_LANGUAGE);
  }

  getChiefComplaintsList() {
    getLanguageID();
    ClinicListService service = new ClinicListService();
    service
        .getChiefComplaintsList(
            widget.searchInfo.ClinicID, widget.searchInfo.ProjectID, context)
        .then((res) {
      if (res['MessageStatus'] == 1) {
        print(res['List_DentalChiefComplain']);
        setState(() {
          res['List_DentalChiefComplain'].forEach((v) {
            complaintsList.add(new ListDentalChiefComplain.fromJson(v));
          });
          print(complaintsList.length);
        });
      } else {}
    }).catchError((err) {
      print(err);
    }).showProgressBar(
            text: "Loading", backgroundColor: Colors.blue.withOpacity(0.6));
  }
}
