import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/PrescriptionViewModel.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescriptions_home_page.dart'; import 'package:diplomaticquarterapp/pages/pharmacies/widgets/home/ViewAllHomeWidget.dart'; import 'package:diplomaticquarterapp/uitl/date_uitl.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/borderedButton.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/others/network_base_view.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:rating_bar/rating_bar.dart'; class PrescriptionsWidget extends StatelessWidget { @override Widget build(BuildContext context) { return BaseView( onModelReady: (model) async { if (Provider.of(context, listen: false).isLogin) { model.getPrescription(); } }, allowAny: true, builder: (_, model, wi) => model.prescriptionsList.length > 0 ? NetworkBaseView( isLocalLoader: true, baseViewModel: model, child: Container( height: model.prescriptionsList.length > 0 ? MediaQuery.of(context).size.height * 0.28 : 0, child: Column( children: [ ViewAllHomeWidget( TranslationBase.of(context).myPrescription, HomePrescriptionsPage()), Container( padding: EdgeInsets.symmetric( horizontal: 18.0, vertical: 14.0), margin: EdgeInsets.only(left: 10), child: ListView.builder( scrollDirection: Axis.horizontal, shrinkWrap: true, physics: ScrollPhysics(), // physics: NeverScrollableScrollPhysics(), itemCount: model.prescriptionsList.length, itemBuilder: (context, index) { return Container( height: MediaQuery.of(context).size.height * 0.3, padding: EdgeInsets.only( bottom: 5.0, left: 5.0, right: 8.0), margin: EdgeInsets.only(right: 10.0), decoration: BoxDecoration( border: Border.all( color: Colors.grey, style: BorderStyle.solid, width: 1.0, ), color: Colors.white, borderRadius: BorderRadius.circular(10.0)), child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Row( children: [ Column(children: [ Container( padding: EdgeInsets.only( top: 10.0, left: 10.0, right: 10.0, bottom: 15.0, ), child: CircleAvatar( radius: 30, backgroundColor: Colors.transparent, child: Image.network( model.prescriptionsList[index] .doctorImageURL, width: 60, height: 60, ), ), ), ]), Column( children: [ Container( margin: EdgeInsets.only(left: 1), padding: EdgeInsets.only( left: 15.0, right: 15.0), decoration: BoxDecoration( border: Border.all( color: Colors.green, style: BorderStyle.solid, width: 4.0, ), color: Colors.green, borderRadius: BorderRadius.circular( 30.0)), child: Text( model.languageID == "ar" ? model .prescriptionsList[ index] .isInOutPatientDescriptionN .toString() : model .prescriptionsList[ index] .isInOutPatientDescription .toString(), style: TextStyle( color: Colors.white, fontSize: 15.0, ), )), Row(children: [ Image.asset( 'assets/images/Icon-awesome-calendar.png', width: 30, height: 30, ), Text( DateUtil.convertStringToDate( model .prescriptionsList[ index] .appointmentDate .toString()) .toString() .substring(0, 10), style: TextStyle( color: Colors.black, fontSize: 15.0, ), ) ]), ], ), ], ), Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( margin: EdgeInsets.only(left: 5), child: Row(children: [ Text( model.prescriptionsList[index] .doctorTitle .toString(), style: TextStyle( color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.bold, ), ), Text( model.prescriptionsList[index] .doctorName .toString(), style: TextStyle( color: Colors.black, fontSize: 15.0, fontWeight: FontWeight.bold, ), ), ]), ), ], ), Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( margin: EdgeInsets.only(left: 5), child: Text( model.prescriptionsList[index] .clinicDescription .toString(), style: TextStyle( color: Colors.green, fontSize: 15.0, // fontWeight: FontWeight.bold, ), ), ), ], ), Row( crossAxisAlignment: CrossAxisAlignment.start, children: [ Container( margin: EdgeInsets.only(left: 5), child: Align( alignment: Alignment.topLeft, child: RatingBar.readOnly( initialRating: model .prescriptionsList[index] .actualDoctorRate .toDouble(), // initialRating: productRate, size: 15.0, filledColor: Colors.yellow[700], emptyColor: Colors.grey[500], isHalfAllowed: true, halfFilledIcon: Icons.star_half, filledIcon: Icons.star, emptyIcon: Icons.star, ), ), ) ]), ]), ); }), ), ], ), ), ) : Container(), ); } }