import 'package:diplomaticquarterapp/core/service/AuthenticatedUserObject.dart'; import 'package:diplomaticquarterapp/core/viewModels/pharmacyModule/PrescriptionViewModel.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/locator.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/prescriptions/prescription_items_page.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/others/network_base_view.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'package:rating_bar/rating_bar.dart'; class PrescriptionsWidget extends StatelessWidget { AuthenticatedUserObject authenticatedUserObject = locator(); @override Widget build(BuildContext context) { ProjectViewModel projectProvider = Provider.of(context); return BaseView( onModelReady: (model) async { if (Provider.of(context, listen: false).isLogin) { model.getPrescription(); } }, allowAny: true, builder: (_, model, wi) => model.prescriptionsList.length > 0 && authenticatedUserObject.isLogin ? NetworkBaseView( isLocalLoader: true, baseViewModel: model, child: Container( child: Column( children: [ ViewAllHomeWidget(TranslationBase.of(context).myPrescription, HomePrescriptionsPage()), Container( margin: EdgeInsets.only(right: 10.0, left: 10.0), height: MediaQuery.of(context).size.height * 0.30, child: ListView.builder( scrollDirection: Axis.horizontal, shrinkWrap: true, physics: ScrollPhysics(), itemCount: model.prescriptionsList.length, itemBuilder: (context, index) { return InkWell( onTap: () { Navigator.push( context, FadePage( page: PrescriptionItemsPage( prescriptions: model.prescriptionsList[index], ), ), ); }, child: Container( padding: EdgeInsets.only(left: 8.0, right: 8.0), margin: EdgeInsets.only(right: 5.0, left: 5.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: [ Container( padding: EdgeInsets.only( top: 10.0, left: 10.0, right: 10.0, bottom: 10.0, ), child: CircleAvatar( radius: 30, backgroundColor: Colors.transparent, child: Image.network( model.prescriptionsList[index].doctorImageURL, width: 50, height: 50, ), ), ), Column( children: [ Container( padding: EdgeInsets.only(left: 15.0, right: 15.0), decoration: BoxDecoration( border: Border.all( color: Colors.green, style: BorderStyle.solid, width: 3.0, ), color: Colors.green, borderRadius: BorderRadius.circular(30.0)), child: Text( projectProvider.isArabic ? 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, ), ) ]), ], ), ], ), 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, ), ), ]), ), Container( margin: EdgeInsets.only(left: 5), child: Text( model.prescriptionsList[index].clinicDescription.toString(), style: TextStyle( color: Colors.green, fontSize: 15.0, ), ), ), Row(children: [ Container( margin: EdgeInsets.only(left: 5), child: RatingBar.readOnly( initialRating: model.prescriptionsList[index].actualDoctorRate.toDouble(), size: 15.0, filledColor: Colors.yellow[700], emptyColor: Colors.grey[500], isHalfAllowed: true, halfFilledIcon: Icons.star_half, filledIcon: Icons.star, emptyIcon: Icons.star, ), ), SizedBox( width: 130.0, ), Container( child: Icon( Icons.arrow_forward, color: Theme.of(context).primaryColor, )), ]), ]), ), ); }, ), ), ], ), ), ) : Container(), ); } }