import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/blood_pressure_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/pages/medical/my_trackers/widget/TabBarWidget.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/gif_loader_dialog_utils.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/defaultButton.dart'; import 'package:diplomaticquarterapp/widgets/dialogs/confirm_send_email_dialog.dart'; import 'package:diplomaticquarterapp/widgets/others/app_scaffold_widget.dart'; import 'package:diplomaticquarterapp/widgets/transitions/fade_page.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import 'AddBloodPressurePage.dart'; import 'BloodPressureMonthly.dart'; import 'BloodPressureYeaPage.dart'; import 'bloodPressureWeeklyPage.dart'; class BloodPressureHomePage extends StatefulWidget { @override _BloodPressureHomePageState createState() => _BloodPressureHomePageState(); } class _BloodPressureHomePageState extends State with SingleTickerProviderStateMixin { TabController _tabController; @override void initState() { super.initState(); _tabController = TabController(length: 3, vsync: this); } @override void dispose() { super.dispose(); _tabController.dispose(); } @override Widget build(BuildContext context) { ProjectViewModel projectViewModel = Provider.of(context); return BaseView( onModelReady: (model) => model.getBloodPressure(), builder: (_, model, w) => AppScaffold( isShowAppBar: true, appBarTitle: TranslationBase .of(context) .bloodPressure, showNewAppBar: true, showNewAppBarTitle: true, baseViewModel: model, body: Scaffold( extendBodyBehindAppBar: true, appBar: TabBarWidget( tabController: _tabController, ), body: Column( children: [ Expanded( child: TabBarView( physics: BouncingScrollPhysics(), controller: _tabController, children: [ BloodPressureWeeklyPage( model: model, ), BloodPressureMonthlyPage( model: model, ), BloodPressureYearPage( model: model, ) ], ), ) ], ), floatingActionButton: Stack(children: [ Positioned( bottom: 60, right: projectViewModel.isArabic ? MediaQuery .of(context) .size .width * .85 : 0, child: InkWell( onTap: () { Navigator.push( context, FadePage( page: AddBloodPressurePage( model: model, ))).then((value) { model.getBloodPressure(); }); }, child: Container( width: 50, height: 50, decoration: BoxDecoration(shape: BoxShape.circle, color: Theme .of(context) .primaryColor), child: Center( child: Icon( Icons.add, color: Colors.white, ), )), )) ]), bottomSheet: Container( color: Theme.of(context).scaffoldBackgroundColor, child: Padding( padding: const EdgeInsets.all(12.0), child: DefaultButton( TranslationBase .of(context) .sendEmail, () { showDialog( context: context, child: ConfirmSendEmailDialog( email: model.user.emailAddress, onTapSendEmail: () async { GifLoaderDialogUtils.showMyDialog(context); model.sendReportByEmail().then((value) { GifLoaderDialogUtils.hideDialog(context); if (model.state == ViewState.ErrorLocal) { AppToast.showErrorToast(message: model.error); } else { AppToast.showSuccessToast( message: TranslationBase .of(context) .emailSentSuccessfully, ); } }).catchError((e) { GifLoaderDialogUtils.hideDialog(context); AppToast.showErrorToast(message: model.error); }); }, ), ); }, // label: TranslationBase.of(context).sendEmail, // backgroundColor: Colors.red[900], ), ), ), )), ); } }