mobdr/lib/ui/account/account_information/edit_email.dart

130 lines
4.6 KiB
Dart

/*
This is edit email page
include file in reuseable/global_function.dart to call function from GlobalFunction
include file in reuseable/global_widget.dart to call function from GlobalWidget
*/
import 'package:mobdr/config/constant.dart';
import 'package:mobdr/config/global_style.dart';
import 'package:mobdr/ui/reusable/reusable_widget.dart';
import 'package:mobdr/ui/reusable/global_function.dart';
import 'package:flutter/material.dart';
class EditEmailPage extends StatefulWidget {
@override
_EditEmailPageState createState() => _EditEmailPageState();
}
class _EditEmailPageState extends State<EditEmailPage> {
// initialize reusable widget and global function
final _reusableWidget = ReusableWidget();
final _globalFunction = GlobalFunction();
TextEditingController _etEmail = TextEditingController();
bool _buttonDisabled = true;
@override
void initState() {
_etEmail = TextEditingController(text: 'robert.steven@ijtechnology.net');
if (_globalFunction.validateEmail(_etEmail.text)) {
_buttonDisabled = false;
} else {
_buttonDisabled = true;
}
super.initState();
}
@override
void dispose() {
_etEmail.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
iconTheme: IconThemeData(
color: GlobalStyle.appBarIconThemeColor,
),
elevation: GlobalStyle.appBarElevation,
title: Text(
'Edit Email',
style: GlobalStyle.appBarTitle,
),
backgroundColor: GlobalStyle.appBarBackgroundColor,
systemOverlayStyle: GlobalStyle.appBarSystemOverlayStyle,
bottom: _reusableWidget.bottomAppBar(),
),
body: ListView(
padding: EdgeInsets.all(16),
children: [
TextFormField(
keyboardType: TextInputType.emailAddress,
controller: _etEmail,
style: TextStyle(color: CHARCOAL),
onChanged: (textValue) {
setState(() {
if (_globalFunction.validateEmail(textValue)) {
_buttonDisabled = false;
} else {
_buttonDisabled = true;
}
});
},
decoration: InputDecoration(
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: PRIMARY_COLOR, width: 2.0)),
enabledBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Color(0xFFCCCCCC)),
),
labelText: 'Email',
labelStyle: TextStyle(color: BLACK_GREY)),
),
SizedBox(
height: 40,
),
Container(
child: TextButton(
style: ButtonStyle(
backgroundColor: MaterialStateProperty.resolveWith<Color>(
(Set<MaterialState> states) =>
states.contains(MaterialState.disabled)
? Colors.grey[300]!
: _buttonDisabled
? Colors.grey[300]!
: PRIMARY_COLOR,
),
overlayColor:
MaterialStateProperty.all(Colors.transparent),
shape: MaterialStateProperty.all(RoundedRectangleBorder(
borderRadius: BorderRadius.circular(3.0),
)),
),
onPressed: () {
if (!_buttonDisabled) {
_reusableWidget.startLoading(
context, 'Edit Email Success', 1);
FocusScope.of(context).unfocus();
}
},
child: Padding(
padding: const EdgeInsets.symmetric(vertical: 5.0),
child: Text(
'Save',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: _buttonDisabled
? Colors.grey[600]
: Colors.white),
textAlign: TextAlign.center,
),
))),
],
));
}
}