import 'package:diplomaticquarterapp/core/enum/viewstate.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/weight_pressure_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/project_view_model.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/theme/colors.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/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 'AddWeightPage.dart'; import 'WeightMonthlyPage.dart'; import 'WeightWeeklyPage.dart'; import 'WeightYeaPage.dart'; class WeightHomePage extends StatefulWidget { @override _WeightHomePageState createState() => _WeightHomePageState(); } class _WeightHomePageState 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.getWeight(), builder: (_, model, w) => AppScaffold( isShowAppBar: true, isShowDecPage: false, showNewAppBar: true, showNewAppBarTitle: true, appBarTitle: TranslationBase.of(context).weight, backgroundColor: CustomColors.appBackgroudGrey2Color, appBarIcons: [ IconButton( icon: Icon(Icons.email), color: Colors.white, onPressed: () { showDialog( context: context, builder: (cxt) => 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); }); }, ), ); }, ), ], baseViewModel: model, body: Column( children: [ TabBar( controller: _tabController, indicatorWeight: 3.0, indicatorSize: TabBarIndicatorSize.tab, labelColor: Color(0xff2B353E), unselectedLabelColor: Color(0xff575757), labelPadding: EdgeInsets.only(top: 15, bottom: 13, left: 20, right: 20), labelStyle: TextStyle( fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins', fontSize: 16, fontWeight: FontWeight.w600, letterSpacing: -0.48, ), unselectedLabelStyle: TextStyle( fontFamily: projectViewModel.isArabic ? 'Cairo' : 'Poppins', fontSize: 16, fontWeight: FontWeight.w600, letterSpacing: -0.48, ), tabs: [Text(TranslationBase.of(context).weekly), Text(TranslationBase.of(context).monthlyT), Text(TranslationBase.of(context).yearly)], ), Expanded( child: TabBarView( physics: BouncingScrollPhysics(), controller: _tabController, children: [ WeightWeeklyPage( model: model, ), WeightMonthlyPage( model: model, ), WeightYearPage( model: model, ) ], ), ) ], ), floatingActionButton: FloatingActionButton( child: Icon( Icons.add, color: Colors.white, ), backgroundColor: CustomColors.accentColor, onPressed: () { Navigator.push( context, FadePage( page: AddWeightPage( model: model, ), ), ); }, ), ), ); } }