import 'package:doctor_app_flutter/core/model/labs/lab_result.dart';
import 'package:doctor_app_flutter/core/model/labs/patient_lab_orders.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/models/patient/patiant_info_model.dart';
import 'package:doctor_app_flutter/screens/patients/profile/lab_result/FlowChartPage.dart';
import 'package:doctor_app_flutter/util/translations_delegate_base.dart';
import 'package:doctor_app_flutter/widgets/shared/Text.dart';
import 'package:doctor_app_flutter/widgets/transitions/fade_page.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';


class LabResultWidget extends StatelessWidget {

  final String filterName ;
  final List<LabResult> patientLabResultList;
  final PatientLabOrders patientLabOrder;
  final PatiantInformtion patient;
   LabResultWidget({Key key, this.filterName, this.patientLabResultList, this.patientLabOrder, this.patient}) : super(key: key);
  ProjectViewModel projectViewModel;
  @override
  Widget build(BuildContext context) {
    projectViewModel = Provider.of(context);

    return Container(
      width: double.infinity,
      child: Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: <Widget>[
          Row(
            mainAxisAlignment:
            MainAxisAlignment.spaceBetween,
            children: [
              Texts(filterName),
              InkWell(
                onTap: () {
                  Navigator.push(
                    context,
                    FadePage(
                      page: FlowChartPage(
                        filterName: filterName,
                          patientLabOrder: patientLabOrder,
                        patient: patient,
                      ),
                    ),
                  );
                },
                child: Texts(
                  TranslationBase.of(context).showMoreBtn,
                  textDecoration: TextDecoration.underline,
                  color: Colors.blue,
                ),
              ),
            ],
          ),
          Table(
            border: TableBorder.symmetric(
              inside: BorderSide(
                  width: 2.0, color: Colors.grey[300]),
            ),
            children: fullData(patientLabResultList,context),
          ),
        ],
      ),
    );
  }
  List<TableRow> fullData(List<LabResult> labResultList,context) {
    List<TableRow> tableRow = [];
    tableRow.add(
      TableRow(
        children: [
          Container(
            child: Container(
              decoration: BoxDecoration(
                color: Theme.of(context).primaryColor,
                borderRadius: BorderRadius.only(
                  topLeft: projectViewModel.isArabic
                      ? Radius.circular(0.0)
                      : Radius.circular(10.0),
                  topRight: projectViewModel.isArabic
                      ? Radius.circular(10.0)
                      : Radius.circular(0.0),
                ),
              ),
              child: Center(
                child: Texts(
                  TranslationBase.of(context).description,
                  color: Colors.white,
                ),
              ),
              height: 60,
            ),
          ),
          Container(
            child: Container(
                decoration: BoxDecoration(
                  color: Theme.of(context).primaryColor,
                ),
                child: Center(
                  child: Texts(TranslationBase.of(context).value, color: Colors.white),
                ),
                height: 60),
          ),
          Container(
            child: Container(
                decoration: BoxDecoration(
                  color: Theme.of(context).primaryColor,
                  borderRadius: BorderRadius.only(
                    topLeft: projectViewModel.isArabic
                        ? Radius.circular(10.0)
                        : Radius.circular(0.0),
                    topRight: projectViewModel.isArabic
                        ? Radius.circular(0.0)
                        : Radius.circular(10.0),
                  ),
                ),
                child: Center(
                  child: Texts(TranslationBase.of(context).range, color: Colors.white),
                ),
                height: 60),
          ),
        ],
      ),
    );
    labResultList.forEach((lab) {
      tableRow.add(
        TableRow(
          children: [
            Container(
              child: Container(
                padding: EdgeInsets.all(10),
                color: Colors.white,
                child: Center(
                  child: Texts(
                    lab.description,
                    textAlign: TextAlign.center,
                  ),
                ),
              ),
            ),
            Container(
              child: Container(
                padding: EdgeInsets.all(10),
                color: Colors.white,
                child: Center(
                  child: Texts(
                    lab.resultValue+" "+lab.uOM,
                    textAlign: TextAlign.center,
                  ),
                ),
              ),
            ),
            Container(
              child: Container(
                padding: EdgeInsets.all(10),
                color: Colors.white,
                child: Center(
                  child: Texts(
                    lab.referanceRange,
                    textAlign: TextAlign.center,
                  ),
                ),
              ),
            ),
          ],
        ),
      );
    });
    return tableRow;
  }

}


