import 'package:diplomaticquarterapp/widgets/buttons/button.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:flutter/material.dart'; import 'package:diplomaticquarterapp/config/size_config.dart'; import 'package:flutter/cupertino.dart'; import '../base/base_view.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/core/viewModels/vaccine_view_model.dart'; import 'package:diplomaticquarterapp/widgets/others/rounded_container.dart'; import 'package:popup_box/popup_box.dart'; class MyVaccines extends StatefulWidget { @override _MyVaccinesState createState() => _MyVaccinesState(); } class _MyVaccinesState extends State { @override Widget build(BuildContext context) { return BaseView( onModelReady: (model) => model.getVaccine(), builder: (BuildContext context, VaccineViewModel model, Widget child) => AppScaffold( isShowAppBar: true, appBarTitle: 'My Vaccines', baseViewModel: model, body: Container( margin: EdgeInsets.only( left: SizeConfig.screenWidth * 0.004, right: SizeConfig.screenWidth * 0.004, top: SizeConfig.screenWidth * 0.04, ), child: Column( children: [ RoundedContainer( backgroundColor: Colors.white, child: ExpansionTile( title: Container( height: 65.0, child: Text('2018'), ), children: [ Container( child: ListView.builder( scrollDirection: Axis.vertical, shrinkWrap: true, itemCount: model.vaccineList == null ? 0 : model.vaccineList.length, itemBuilder: (BuildContext context, int index) { return Column( children: [ RoundedContainer( child: Column( children: [ Row( children: [ Expanded( child: Column( children: [ Padding( padding: EdgeInsets.symmetric( horizontal: 20.0, vertical: 20.0), child: Image.network( model.vaccineList[index] .doctorImageURL, height: SizeConfig .imageSizeMultiplier * 23, width: SizeConfig .imageSizeMultiplier * 20, fit: BoxFit.fill, ), ), ], ), flex: 2, ), Expanded( child: Container( child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( model.vaccineList[index] .doctorTitle + model.vaccineList[index] .doctorName, style: TextStyle( fontWeight: FontWeight.w900, fontSize: 16.6, ), ), SpaceBetweenTexts(space: 7.0), Text( model.vaccineList[index] .projectName, style: TextStyle( fontSize: 17.0, letterSpacing: 0.5, ), ), SpaceBetweenTexts(space: 7.0), Text( model.vaccineList[index] .vaccineName, style: TextStyle( fontSize: 17.0, ), ), SpaceBetweenTexts(space: 7.0), Text( 'Date Taken ' + convertDateFormat(model .vaccineList[index] .invoiceDate), style: TextStyle(fontSize: 17.0), ), ], ), ), flex: 5, ), ], ), ], ), ), ], ); }), ) ], ), ), // SpaceBetweenTexts(space: 165.0), ], ), ), bottomSheet: Container( color: Theme.of(context).scaffoldBackgroundColor, padding: EdgeInsets.all(12), height: MediaQuery.of(context).size.height *0.25, width: double.infinity, child: Column( children: [ Divider(height: 2,thickness: 1,), SizedBox(height: 6,), Container( width: double.infinity, // height: 80.0, child: Button( label: 'CHECK VACCINE AVAILABILITY', backgroundColor: Color(0xff9EA3A4), ), ), Container( width: double.infinity, // height: 80.0, child: SecondaryButton( label: 'SEND EMAIL', color: Color(0xffF62426), textColor: Colors.white, disabled: model.vaccineList.length==0, onTap: () async { await PopupBox.showPopupBox( context: context, button: MaterialButton( shape: RoundedRectangleBorder( borderRadius: BorderRadius.circular(3), ), color: Colors.white, child: Text( 'CANCEL', style: TextStyle(fontSize: 16.5), ), onPressed: () { Navigator.of(context).pop(); }, ), willDisplayWidget: Column( children: [ Text( 'Conform \nSend a copy of this report to the email' + model.vaccineList[0].doctorName, style: TextStyle( fontSize: 20, color: Colors.black26, fontWeight: FontWeight.w900), ), SizedBox( height: 30.0, ), ], )); }, ), ), ], ), ), ), ); } convertDateFormat(String Date) { const start = "/Date("; const end = "+0300)"; final startIndex = Date.indexOf(start); final endIndex = Date.indexOf(end, startIndex + start.length); var date = new DateTime.fromMillisecondsSinceEpoch( int.parse(Date.substring(startIndex + start.length, endIndex))); String newDate = date.year.toString() + "-" + date.month.toString().padLeft(2, '0') + "-" + date.day.toString().padLeft(2, '0'); return newDate.toString(); } } class SpaceBetweenTexts extends StatelessWidget { final double space; SpaceBetweenTexts({this.space}); @override Widget build(BuildContext context) { return SizedBox( height: space, ); } }