import 'package:doctor_app_flutter/core/viewModel/sick_leave_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/models/sickleave/get_all_sickleave_response.dart';
import 'package:doctor_app_flutter/screens/base/base_view.dart';
import 'package:doctor_app_flutter/util/date-utils.dart';
import 'package:doctor_app_flutter/util/dr_app_toast_msg.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/patients/profile/patient-profile-header-new-design-app-bar.dart';
import 'package:doctor_app_flutter/widgets/shared/app_scaffold_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:doctor_app_flutter/widgets/shared/rounded_container_widget.dart';
import 'package:flutter/material.dart';

class ShowSickLeaveScreen extends StatelessWidget {
  PatiantInformtion patient;

  @override
  Widget build(BuildContext context) {
    final routeArgs = ModalRoute.of(context).settings.arguments as Map;
    patient = routeArgs['patient'];
    return BaseView<SickLeaveViewModel>(
      onModelReady: (model) =>
          model.getSickLeave(patient.patientMRN ?? patient.patientId),
      builder: (_, model, w) => AppScaffold(
        baseViewModel: model,
        isShowAppBar: true,
        backgroundColor: Colors.grey[100],
        appBar: PatientProfileHeaderNewDesignAppBar(
          patient,
          routeArgs['patientType'] ?? "0",
          routeArgs['arrivalType'] ?? "0",
        ),
        body: SingleChildScrollView(
          child: Column(
            children: [
              // PatientProfileHeaderNewDesign(
              //     patient, routeArgs['patientType'], routeArgs['arrivalType']),
              model.getAllSIckLeave.length > 0
                  ? Column(
                      children: model.getAllSIckLeave
                          .map<Widget>((GetAllSickLeaveResponse item) {
                        return RoundedContainer(
                            margin: EdgeInsets.all(10),
                            child: Column(
                              children: [
                                Container(
                                    decoration: BoxDecoration(
                                        border: Border(
                                            left: BorderSide(
                                      color: item.status == 1
                                          ? Colors.yellow[800]
                                          : item.status == 2
                                              ? Colors.green
                                              : Colors.black,
                                      width: 5.0,
                                    ))),
                                    padding: EdgeInsets.all(10),
                                    child: Row(
                                      mainAxisAlignment:
                                          MainAxisAlignment.start,
                                      children: <Widget>[
                                        Expanded(
                                          flex: 4,
                                          child: Wrap(
                                            // mainAxisAlignment:
                                            //     MainAxisAlignment.start,
                                            children: <Widget>[
                                              Column(
                                                crossAxisAlignment:
                                                    CrossAxisAlignment.start,
                                                children: <Widget>[
                                                  Container(
                                                    padding: EdgeInsets.all(3),
                                                    child: AppText(
                                                      item.status == 1
                                                          ? TranslationBase.of(
                                                                  context)
                                                              .hold
                                                          : item.status == 2
                                                              ? TranslationBase
                                                                      .of(
                                                                          context)
                                                                  .active
                                                              : TranslationBase
                                                                      .of(context)
                                                                  .all,
                                                      fontWeight:
                                                          FontWeight.bold,
                                                      color: item.status == 1
                                                          ? Colors.yellow[800]
                                                          : item.status == 2
                                                              ? Colors.green
                                                              : Colors.black,
                                                    ),
                                                  ),
                                                  Row(
                                                    children: [
                                                      AppText(
                                                          TranslationBase.of(
                                                                  context)
                                                              .daysSickleave),
                                                      AppText(
                                                        item.noOfDays
                                                            .toString(),
                                                        fontWeight:
                                                            FontWeight.bold,
                                                      ),
                                                    ],
                                                  ),
                                                  Row(
                                                    children: [
                                                      AppText(
                                                        TranslationBase.of(
                                                                    context)
                                                                .startDate +
                                                            ' ',
                                                      ),
                                                      Flexible(
                                                          child: AppText(
                                                        DateUtils
                                                            .convertStringToDateFormat(
                                                                item.startDate,
                                                                'dd-MMM-yyyy'),
                                                        fontWeight:
                                                            FontWeight.bold,
                                                      ))
                                                    ],
                                                  ),
                                                  Row(
                                                      mainAxisAlignment:
                                                          MainAxisAlignment
                                                              .spaceBetween,
                                                      children: [
                                                        AppText(
                                                          item.remarks ?? "",
                                                        ),
                                                        (item.status == 1)
                                                            ? IconButton(
                                                                icon: Image.asset(
                                                                    'assets/images/edit.png'),

                                                                // color: Colors.green, //Colors.black,
                                                                onPressed: () =>
                                                                    {
                                                                  if (item.status ==
                                                                      1)
                                                                    {
                                                                      DrAppToastMsg.showErrorToast(
                                                                          TranslationBase.of(context)
                                                                              .sickleaveonhold)
                                                                    }
                                                                  // else
                                                                  //   {
                                                                  //     openSickLeave(
                                                                  //         context,
                                                                  //         true,
                                                                  //         extendedData:
                                                                  //             item)
                                                                  //   }
                                                                },
                                                              )
                                                            : SizedBox()
                                                      ]),
                                                ],
                                              ),
                                              SizedBox(
                                                width: 20,
                                              ),
                                            ],
                                          ),
                                        ),
                                      ],
                                    )),
                              ],
                            ));
                      }).toList(),
                    )
                  : Center(
                      child: Column(
                        crossAxisAlignment: CrossAxisAlignment.center,
                        children: [
                          SizedBox(
                            height: 100,
                          ),
                          Image.asset('assets/images/no-data.png'),
                          Padding(
                            padding: const EdgeInsets.all(8.0),
                            child: AppText(
                                TranslationBase.of(context).noSickLeave),
                          )
                        ],
                      ),
                    )
            ],
          ),
        ),
      ),
    );
  }
}
