import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/child_vaccines_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/child_vaccines/user_information_view_model.dart'; import 'package:diplomaticquarterapp/core/viewModels/medical/my_balance_view_model.dart'; import 'package:diplomaticquarterapp/pages/ChildVaccines/child_page.dart'; import 'package:diplomaticquarterapp/pages/base/base_view.dart'; import 'package:diplomaticquarterapp/uitl/app_toast.dart'; import 'package:diplomaticquarterapp/uitl/translations_delegate_base.dart'; import 'package:diplomaticquarterapp/widgets/buttons/secondary_button.dart'; import 'package:diplomaticquarterapp/widgets/data_display/text.dart'; import 'package:diplomaticquarterapp/widgets/input/text_field.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'; class ChildVaccinesPage extends StatefulWidget { @override _ChildVaccinesPageState createState() => _ChildVaccinesPageState(); } class _ChildVaccinesPageState extends State with SingleTickerProviderStateMixin { TextEditingController titleController = TextEditingController(); var checkedValue = false; String addEmail = ""; final updateEmailFormKey = GlobalKey(); @override Widget build(BuildContext context) { return BaseView( onModelReady: (model) => model.getUserInformationRequestOrders(), builder: (_, model, w) => AppScaffold( isShowAppBar: true, baseViewModel: model, appBarTitle: TranslationBase.of(context).vaccination, body: SingleChildScrollView( physics: ScrollPhysics(), child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceAround, children: [ SizedBox( height: 20, ), Padding( padding: const EdgeInsets.all(10.0), child: Container( child: Texts( TranslationBase.of(context).welcomeBackV, fontSize: 20, ), ), ), Divider( color: Colors.black, indent: 10, endIndent: 10, ), SizedBox( height: 20, ), Padding( padding: const EdgeInsets.all(10.0), child: Container( child: Texts( TranslationBase.of(context).instructions, fontSize: 20, ), ), ), Divider( color: Colors.black, indent: 10, endIndent: 10, ), Form( key: updateEmailFormKey, child: Padding( padding: const EdgeInsets.all(10.0), child: Container( margin: EdgeInsets.only(left: 10, right: 10, top: 15), child: TextFields( fillColor: Colors.red, initialValue: model.userInformationModelList.emailAddress, fontSize: 20, hintColor: Colors.black, fontWeight: FontWeight.w600, onChanged: (text) { setState(() { addEmail = text; }); }, validator: (value) { if (value.isEmpty) return TranslationBase.of(context).enterEmail; else if (!RegExp(r"^[a-zA-Z0-9.a-zA-Z0-9.!#$%&'*+-/=?^_`{|}~]+@[a-zA-Z0-9]+\.[a-zA-Z]+").hasMatch(value)) return TranslationBase.of(context).validEmail; return null; }, ), ), ), ), Container( height: MediaQuery.of(context).size.height * 0.10, width: double.infinity, padding: EdgeInsets.all(15), child: SecondaryButton( textColor: Colors.white, color: model.userInformationModelList.emailAddress == addEmail ? Colors.white24 : Color.fromRGBO(63, 72, 74, 1,), disabled: addEmail.isEmpty, label: TranslationBase.of(context).updateEmail, onTap: () async{ final form = updateEmailFormKey.currentState; if (form.validate()) { form.save(); await model.updateEmail(addEmail); AppToast.showSuccessToast(message: TranslationBase.of(context).updatedEmail); } }, ), ), Container( height: MediaQuery.of(context).size.height * 0.10, width: double.infinity, padding: EdgeInsets.all(15), child: SecondaryButton( textColor: Colors.white, color: Color.fromRGBO( 63, 72, 74, 1, ), label: TranslationBase.of(context).viewListChildren, onTap: () => Navigator.push( context, FadePage( page: ChildPage(informationModel: model.userInformationModelList,), ), ), ), ), SizedBox( height: MediaQuery.of(context).size.height * 0.15, ) ], ), ), ), ); } }