You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
155 lines
6.0 KiB
Dart
155 lines
6.0 KiB
Dart
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<ChildVaccinesPage>
|
|
with SingleTickerProviderStateMixin {
|
|
TextEditingController titleController = TextEditingController();
|
|
var checkedValue = false;
|
|
String addEmail = "";
|
|
final updateEmailFormKey = GlobalKey<FormState>();
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return BaseView<UserInformationViewModel>(
|
|
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,
|
|
)
|
|
],
|
|
),
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|