import 'package:doctor_app_flutter/config/size_config.dart';
import 'package:doctor_app_flutter/core/viewModel/project_view_model.dart';
import 'package:doctor_app_flutter/core/model/patient/vital_sign/patient-vital-sign-history.dart';
import 'package:doctor_app_flutter/utils/date-utils.dart';
import 'package:doctor_app_flutter/utils/translations_delegate_base_utils.dart';
import 'package:doctor_app_flutter/widgets/shared/app_texts_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';

class VitalSignBloodPressureWidget extends StatefulWidget {
  final List<VitalSignHistory>? vitalList;
  final String title1;
  final String title2;
  final String title3;
  final String viewKey1;
  final String viewKey2;

  VitalSignBloodPressureWidget(
      {Key? key,
      this.vitalList,
      this.title1 = '' ,
      this.title2 = '',
      this.viewKey1 = '',
      this.title3 = '',
      this.viewKey2 = ''});

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

class _VitalSignDetailsWidgetState extends State<VitalSignBloodPressureWidget> {
  @override
  Widget build(BuildContext context) {
    ProjectViewModel projectViewModel = Provider.of(context);
    return Container(
      margin: EdgeInsets.all(0),
      child: Container(
        color: Colors.transparent,
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Row(
              children: [
                Expanded(
                  child: Container(
                    child: Container(
                      padding: EdgeInsets.all(8),
                      child: AppText(
                        TranslationBase.of(context).date,
                        fontSize: SizeConfig.textMultiplier! * 1.5,
                        fontWeight: FontWeight.bold,
                        fontFamily: 'Poppins',
                      ),
                      // height: 60,
                    ),
                  ),
                ),
                Expanded(
                  child: Container(
                    padding: EdgeInsets.all(8),
                    child: Container(
                      child: AppText(
                        widget.title2,
                        fontSize: SizeConfig.textMultiplier! * 1.5,
                        fontWeight: FontWeight.bold,
                        fontFamily: 'Poppins',
                      ),
                      // height: 60
                    ),
                  ),
                ),
                Expanded(
                  child: Container(
                    padding: EdgeInsets.all(8),
                    child: Container(
                      child: AppText(
                        widget.title3,
                        fontSize: SizeConfig.textMultiplier! * 1.5,
                        fontWeight: FontWeight.bold,
                        fontFamily: 'Poppins',
                      ),
                      // height: 60
                    ),
                  ),
                ),
              ],
            ),
            const Divider(
              height: 1,
              thickness: 1,
              color: Colors.black,
            ),
            Table(
              border: TableBorder(
                horizontalInside:
                    BorderSide(width: 1.0, color: Colors.grey[300]!),
              ),
              children: fullData(projectViewModel),
            ),
          ],
        ),
      ),
    );
  }

  List<TableRow> fullData(ProjectViewModel projectViewModel) {
    List<TableRow> tableRow = [];
    /* tableRow.add(TableRow(children: [
      Container(
        child: Container(
            decoration: BoxDecoration(
              color: Theme.of(context).primaryColor,
              borderRadius: BorderRadius.only(
                topRight: projectViewModel.isArabic? Radius.circular(0.0):Radius.circular(10.0),
                topLeft: projectViewModel.isArabic? Radius.circular(10.0):Radius.circular(0.0)
              ),
            ),
            child: Center(
              child: AppText(widget.title3, color: Colors.white),
            ),
            height: 60),
      ),
    ]));*/
    widget.vitalList!.forEach((vital) {
      var data = vital.toJson()[widget.viewKey1];
      DateTime elementDate =
          AppDateUtils.getDateTimeFromServerFormat(vital.createdOn);
      if (data != 0)
        tableRow.add(TableRow(children: [
          Container(
            child: Container(
              padding: EdgeInsets.all(10),
              color: Colors.white,
              child: AppText(
                '${projectViewModel.isArabic ? AppDateUtils.getWeekDayArabic(elementDate.weekday) : AppDateUtils.getWeekDay(elementDate.weekday)}, ${elementDate.day} ${projectViewModel.isArabic ? AppDateUtils.getMonthArabic(elementDate.month) : AppDateUtils.getMonth(elementDate.month)}, ${elementDate.year} ${AppDateUtils.getHour(elementDate)}',
                // textAlign: TextAlign.center,
                fontSize: SizeConfig.textMultiplier! * 1.6,
                fontWeight: FontWeight.w600,

                fontFamily: 'Poppins',
              ),
            ),
          ),
          Container(
            child: Container(
              padding: EdgeInsets.all(10),
              color: Colors.white,
              child: AppText(
                '${vital.toJson()[widget.viewKey1]}',
                // textAlign: TextAlign.center,
                fontSize: SizeConfig.textMultiplier! * 1.6,
                fontWeight: FontWeight.w600,

                fontFamily: 'Poppins',
              ),
            ),
          ),
          Container(
            child: Container(
              padding: EdgeInsets.all(10),
              color: Colors.white,
              child: AppText(
                '${vital.toJson()[widget.viewKey2]}',
                // textAlign: TextAlign.center,
                fontSize: SizeConfig.textMultiplier! * 1.6,
                fontWeight: FontWeight.w600,

                fontFamily: 'Poppins',
              ),
            ),
          ),
        ]));
    });
    return tableRow;
  }
}
