import 'package:doctor_app_flutter/models/patient/my_referral/my_referral_patient_model.dart';
import 'package:doctor_app_flutter/models/patient/my_referral/my_referred_patient_model.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:flutter/material.dart';

import 'package:doctor_app_flutter/config/size_config.dart';

import 'package:doctor_app_flutter/providers/referred_patient_provider.dart';

import 'package:doctor_app_flutter/util/helpers.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
import 'package:doctor_app_flutter/widgets/shared/TextFields.dart';
import 'package:doctor_app_flutter/widgets/shared/app_button.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/card_with_bgNew_widget.dart';
import 'package:flutter/cupertino.dart';

import 'package:provider/provider.dart';

class MyReferredPatientWidget extends StatefulWidget {
  final MyReferredPatientModel myReferredPatientModel;

  MyReferredPatientWidget({Key key, this.myReferredPatientModel});

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

class _MyReferredPatientWidgetState extends State<MyReferredPatientWidget> {
  bool _showDetails = false;
  bool _isLoading = false;
  TextEditingController answerController;

  @override
  void initState() {
    super.initState();
  }

  @override
  Widget build(BuildContext context) {
    return CardWithBgWidgetNew(
      widget: Container(
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              children: <Widget>[
                AppText(
                  '${widget.myReferredPatientModel.firstName} ${widget.myReferredPatientModel.lastName}',
                  fontSize: 2.5 * SizeConfig.textMultiplier,
                  fontWeight: FontWeight.bold,
                ),
                InkWell(
                    onTap: () {
                      setState(() {
                        _showDetails = !_showDetails;
                      });
                    },
                    child: Icon(_showDetails
                        ? Icons.keyboard_arrow_up
                        : Icons.keyboard_arrow_down)),
              ],
            ),
            !_showDetails
                ? Container()
                : AnimatedContainer(
                    duration: Duration(milliseconds: 200),
                    child: Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        Column(
                          crossAxisAlignment: CrossAxisAlignment.start,
                          children: <Widget>[
                            SizedBox(
                              height: 5,
                            ),
                            Divider(
                              color: Color(0xFF000000),
                              height: 0.5,
                            ),
                            Table(
                              border: TableBorder.symmetric(
                                inside: BorderSide(width: 0.5),
                              ),
                              children: [
                                TableRow(children: [
                                  Container(
                                    margin: EdgeInsets.all(2.5),
                                    padding: EdgeInsets.all(5),
                                    decoration: BoxDecoration(),
                                    child: Column(
                                      crossAxisAlignment:
                                      CrossAxisAlignment.start,
                                      children: <Widget>[
                                        AppText(
                                          TranslationBase.of(context).fileNo,
                                          fontSize:
                                          1.7 * SizeConfig.textMultiplier,
                                          fontWeight: FontWeight.bold,
                                        ),
                                        AppText(
                                          '${widget.myReferredPatientModel.patientId}',
                                          fontSize:
                                          1.7 * SizeConfig.textMultiplier,
                                          fontWeight: FontWeight.w300,
                                        )
                                      ],
                                    ),
                                  ),
                                  Container(
                                    margin: EdgeInsets.only(
                                        left: 4,
                                        top: 2.5,
                                        right: 2.5,
                                        bottom: 2.5),
                                    padding: EdgeInsets.all(5),
                                    child: Column(
                                      crossAxisAlignment:
                                      CrossAxisAlignment.start,
                                      children: <Widget>[
                                        AppText(
                                          TranslationBase.of(context).referralDoctor,
                                          fontSize:
                                          1.7 * SizeConfig.textMultiplier,
                                          fontWeight: FontWeight.bold,
                                        ),
                                        Texts(
                                          widget.myReferredPatientModel
                                              .referralDoctorName,
                                          maxLength: 80,
                                          readMore: true,
                                        ),
                                      ],
                                    ),
                                  ),
                                ]),
                                TableRow(
                                  children: [
                                    Container(
                                      margin: EdgeInsets.all(2.5),
                                      padding: EdgeInsets.all(5),
                                      child: Column(
                                        crossAxisAlignment:
                                        CrossAxisAlignment.start,
                                        children: <Widget>[
                                          AppText(
                                            TranslationBase.of(context).referringClinic,
                                            fontSize: 1.7 *
                                                SizeConfig.textMultiplier,
                                            fontWeight: FontWeight.bold,
                                          ),
                                          AppText(
                                            '${widget.myReferredPatientModel.referralClinicDescription}',
                                            fontSize: 1.7 *
                                                SizeConfig.textMultiplier,
                                            fontWeight: FontWeight.w300,
                                          )
                                        ],
                                      ),
                                    ),
                                    Container(
                                      margin: EdgeInsets.only(
                                          left: 4,
                                          top: 2.5,
                                          right: 2.5,
                                          bottom: 2.5),
                                      padding: EdgeInsets.all(5),
                                      child: Column(
                                        crossAxisAlignment:
                                        CrossAxisAlignment.start,
                                        children: <Widget>[
                                          AppText(
                                            TranslationBase.of(context).frequency,
                                            fontSize: 1.7 *
                                                SizeConfig.textMultiplier,
                                            fontWeight: FontWeight.bold,
                                          ),
                                          AppText(
                                            widget.myReferredPatientModel
                                                .frequencyDescription,
                                            fontSize: 1.7 *
                                                SizeConfig.textMultiplier,
                                            fontWeight: FontWeight.w300,
                                          )
                                        ],
                                      ),
                                    )
                                  ],
                                ),
                                TableRow(children: [
                                  Container(
                                    margin: EdgeInsets.all(2.5),
                                    padding: EdgeInsets.all(5),
                                    child: Column(
                                      crossAxisAlignment:
                                      CrossAxisAlignment.start,
                                      children: <Widget>[
                                        AppText(
                                          TranslationBase.of(context).priority,
                                          fontSize:
                                          1.7 * SizeConfig.textMultiplier,
                                          fontWeight: FontWeight.bold,
                                        ),
                                        AppText(
                                          '${widget.myReferredPatientModel.priorityDescription}',
                                          fontSize:
                                          1.7 * SizeConfig.textMultiplier,
                                          fontWeight: FontWeight.w300,
                                        )
                                      ],
                                    ),
                                  ),
                                  Container(
                                    margin: EdgeInsets.only(
                                        left: 4,
                                        top: 2.5,
                                        right: 2.5,
                                        bottom: 2.5),
                                    padding: EdgeInsets.all(5),
                                    child: Column(
                                      crossAxisAlignment:
                                      CrossAxisAlignment.start,
                                      children: <Widget>[
                                        AppText(
                                          TranslationBase.of(context).maxResponseTime,
                                          fontSize:
                                          1.7 * SizeConfig.textMultiplier,
                                          fontWeight: FontWeight.bold,
                                        ),
                                        AppText(
                                          Helpers.getDateFormatted(widget
                                              .myReferredPatientModel
                                              .maxResponseTime),
                                          fontSize:
                                          1.7 * SizeConfig.textMultiplier,
                                          fontWeight: FontWeight.w300,
                                        )
                                      ],
                                    ),
                                  )
                                ])
                              ],
                            ),
                            Divider(
                              color: Color(0xFF000000),
                              height: 0.5,
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            AppText(
                              TranslationBase.of(context).clinicDetailsandRemarks,
                              fontSize: 1.7 * SizeConfig.textMultiplier,
                              fontWeight: FontWeight.bold,
                              textAlign: TextAlign.start,
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            Texts(
                                '${widget.myReferredPatientModel.referringDoctorRemarks}',
                                style: "bodyText1",
                                readMore: true,
                                textAlign: TextAlign.start,
                                maxLength: 100),
                            SizedBox(
                              height: 5,
                            ),
                            AppText(
                              TranslationBase.of(context).answerSuggestions,
                              fontSize: 1.7 * SizeConfig.textMultiplier,
                              fontWeight: FontWeight.bold,
                              textAlign: TextAlign.start,
                            ),
                            SizedBox(
                              height: 5,
                            ),
                            Texts(
                                '${widget.myReferredPatientModel.referredDoctorRemarks}',
                                style: "bodyText1",
                                readMore: true,
                                textAlign: TextAlign.start,
                                maxLength: 100),
                            SizedBox(
                              height: 5,
                            ),
                            SizedBox(height: 10.0),
                            Container(
                              width: double.infinity,
                              child: Button(
                                onTap: () async {
                                  try {
                                    setState(() {
                                      _isLoading = true;
                                    });
                                    await Provider.of<MyReferredPatientProvider>(context, listen: false).verify(widget.myReferredPatientModel);
                                    setState(() {
                                      _isLoading = false;
                                    });
                                    DrAppToastMsg.showSuccesToast('Verify Successfully');
                                  } catch (e) {
                                    setState(() {
                                      _isLoading = false;
                                    });
                                    DrAppToastMsg.showErrorToast(e);
                                  }
                                },
                                title: TranslationBase.of(context).verify,
                                loading: _isLoading,
                              ),
                            )
                          ],
                        )
                      ],
                    ),
                  )
          ],
        ),
      ),
    );
  }
}
