import 'package:diplomaticquarterapp/core/model/labs/patient_lab_orders.dart';
import 'package:diplomaticquarterapp/core/viewModels/medical/labs_view_model.dart';
import 'package:diplomaticquarterapp/pages/base/base_view.dart';
import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart';
import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart';
import 'package:diplomaticquarterapp/uitl/utils.dart';
import 'package:diplomaticquarterapp/widgets/data_display/medical/LabResult/laboratory_result_widget.dart';
import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';

class LaboratoryResultPage extends StatefulWidget {
  final PatientLabOrders patientLabOrders;

  LaboratoryResultPage({Key key, this.patientLabOrders});

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

class _LaboratoryResultPageState extends State<LaboratoryResultPage> {


  @override
  Widget build(BuildContext context) {
    return BaseView<LabsViewModel>(
      onModelReady: (model) => model.getLaboratoryResult(
          invoiceNo: widget.patientLabOrders.invoiceNo,
          clinicID: widget.patientLabOrders.clinicID,
          projectID: widget.patientLabOrders.projectID,
          orderNo: widget.patientLabOrders.orderNo),
      builder: (_, model, w) => AppScaffold(
        isShowAppBar: true,
        appBarTitle: TranslationBase.of(context).labResults,
        baseViewModel: model,
        body: Scaffold(
          body: ListView.builder(
            itemBuilder: (context, index) => LaboratoryResultWidget(
              onTap: ()async {
                GifLoaderDialogUtils.showMyDialog(context);
                await model.sendLabReportEmail(patientLabOrder: widget.patientLabOrders,mes: TranslationBase.of(context).sendSuc);
                GifLoaderDialogUtils.hideDialog(context);
              },
              billNo: widget.patientLabOrders.invoiceNo,
              details: model.patientLabSpecialResult[index].resultDataHTML,
              orderNo: widget.patientLabOrders.orderNo,
              patientLabOrder: widget.patientLabOrders,
            ),
            itemCount: model.patientLabSpecialResult.length,
          ),
        ),
      ),
    );
  }
}
