login fix

This commit is contained in:
Juan Felipe Duarte
2023-06-05 14:23:13 -05:00
parent 3733fbc297
commit 952ab0269b
+143 -182
View File
@@ -89,7 +89,8 @@ class _LoginEmailScreenState extends State<LoginEmailScreen> {
padding: padding:
const EdgeInsets.symmetric(horizontal: 0, vertical: 20), const EdgeInsets.symmetric(horizontal: 0, vertical: 20),
margin: const EdgeInsets.only(top: 210, left: 50, right: 50), margin: const EdgeInsets.only(top: 210, left: 50, right: 50),
child: Column(children: [ child: Column(
children: [
Padding( Padding(
padding: const EdgeInsets.only(bottom: 20), padding: const EdgeInsets.only(bottom: 20),
child: ElevatedButton( child: ElevatedButton(
@@ -153,50 +154,7 @@ class _LoginEmailScreenState extends State<LoginEmailScreen> {
fontSize: 18.0, color: Color(0xFF65676B))), fontSize: 18.0, color: Color(0xFF65676B))),
), ),
), ),
Padding( FormEmail(controller: controller),
padding: const EdgeInsets.only(bottom: 20),
child: TextFormField(
controller: controller.email,
validator: (String? value) {
if (value == null || value.isEmpty) {
return 'Por favor ingrese un email';
}
final RegExp emailRegExp =
RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$');
if (!emailRegExp.hasMatch(value)) {
return 'Por favor ingrese un email válido';
}
return null;
},
decoration: const InputDecoration(
border: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color.fromARGB(255, 184, 0, 0)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
hintText: 'Hello@gmail.com',
fillColor: Color.fromARGB(255, 239, 239, 239),
filled: true,
prefixIcon: Icon(Icons.email_outlined),
),
),
),
const Padding( const Padding(
padding: EdgeInsets.only(bottom: 5), padding: EdgeInsets.only(bottom: 5),
child: Align( child: Align(
@@ -204,7 +162,8 @@ class _LoginEmailScreenState extends State<LoginEmailScreen> {
child: Text('Password', child: Text('Password',
style: TextStyle( style: TextStyle(
fontSize: 18.0, color: Color(0xFF65676B))), fontSize: 18.0, color: Color(0xFF65676B))),
)), ),
),
Padding( Padding(
padding: const EdgeInsets.only(bottom: 50), padding: const EdgeInsets.only(bottom: 50),
child: TextFormField( child: TextFormField(
@@ -218,17 +177,20 @@ class _LoginEmailScreenState extends State<LoginEmailScreen> {
}, },
decoration: InputDecoration( decoration: InputDecoration(
enabledBorder: const OutlineInputBorder( enabledBorder: const OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFECECEC)), borderSide:
BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(50), Radius.circular(50),
)), )),
focusedBorder: const OutlineInputBorder( focusedBorder: const OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFECECEC)), borderSide:
BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(50), Radius.circular(50),
)), )),
border: const OutlineInputBorder( border: const OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFECECEC)), borderSide:
BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all( borderRadius: BorderRadius.all(
Radius.circular(50), Radius.circular(50),
)), )),
@@ -258,50 +220,11 @@ class _LoginEmailScreenState extends State<LoginEmailScreen> {
), ),
), ),
), ),
Padding( PaddingButtomBottom(
padding: const EdgeInsets.only(bottom: 40), formKey: _formKey, controller: controller),
child: Center( const RichTxtBottom()
child: PrimaryButtom(
onPressed: () {
if (_formKey.currentState!.validate()) {
LoginEmailController.instance.loginUser(
controller.email.text.trim(),
controller.password.text.trim(),
);
}
},
label: 'Iniciar'),
),
),
RichText(
text: TextSpan(
style: const TextStyle(
fontSize: 16.0,
color: Color(0xFF65676B),
fontFamily: 'Poppins',
),
children: [
const TextSpan(text: 'No estas registrado? '),
WidgetSpan(
child: GestureDetector(
onTap: () {
Navigator.pushReplacementNamed(
context, '/register');
},
child: const Text(
'Registrarse',
style: TextStyle(
fontSize: 16.0,
color: Color(0xFF2BA4EC),
fontWeight: FontWeight.w600,
),
),
),
),
], ],
), ),
)
]),
), ),
), ),
], ],
@@ -434,53 +357,7 @@ class _LoginEmailScreenState extends State<LoginEmailScreen> {
fontSize: 18.0, fontSize: 18.0,
color: Color(0xFF65676B))), color: Color(0xFF65676B))),
)), )),
Padding( FormEmail(controller: controller),
padding: const EdgeInsets.only(bottom: 20),
child: TextFormField(
controller: controller.email,
validator: (String? value) {
if (value == null || value.isEmpty) {
return 'Por favor ingrese un email';
}
final RegExp emailRegExp =
RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$');
if (!emailRegExp.hasMatch(value)) {
return 'Por favor ingrese un email válido';
}
return null;
},
decoration: const InputDecoration(
border: OutlineInputBorder(
borderSide:
BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
enabledBorder: OutlineInputBorder(
borderSide:
BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
focusedBorder: OutlineInputBorder(
borderSide:
BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(
color: Color.fromARGB(255, 184, 0, 0)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
hintText: 'Hello@gmail.com',
fillColor: Color.fromARGB(255, 239, 239, 239),
filled: true,
prefixIcon: Icon(Icons.email_outlined),
),
),
),
const Padding( const Padding(
padding: EdgeInsets.only(bottom: 5), padding: EdgeInsets.only(bottom: 5),
child: Align( child: Align(
@@ -489,7 +366,8 @@ class _LoginEmailScreenState extends State<LoginEmailScreen> {
style: TextStyle( style: TextStyle(
fontSize: 18.0, fontSize: 18.0,
color: Color(0xFF65676B))), color: Color(0xFF65676B))),
)), ),
),
Padding( Padding(
padding: const EdgeInsets.only(bottom: 50), padding: const EdgeInsets.only(bottom: 50),
child: TextFormField( child: TextFormField(
@@ -547,49 +425,9 @@ class _LoginEmailScreenState extends State<LoginEmailScreen> {
), ),
), ),
), ),
Padding( PaddingButtomBottom(
padding: const EdgeInsets.only(bottom: 40), formKey: _formKey, controller: controller),
child: Center( const RichTxtBottom()
child: PrimaryButtom(
onPressed: () {
if (_formKey.currentState!.validate()) {
LoginEmailController.instance.loginUser(
controller.email.text.trim(),
controller.password.text.trim(),
);
}
},
label: 'Iniciar'),
),
),
RichText(
text: TextSpan(
style: const TextStyle(
fontSize: 16.0,
color: Color(0xFF65676B),
fontFamily: 'Poppins',
),
children: [
const TextSpan(text: 'No estas registrado? '),
WidgetSpan(
child: GestureDetector(
onTap: () {
Navigator.pushReplacementNamed(
context, '/register');
},
child: const Text(
'Registrarse',
style: TextStyle(
fontSize: 16.0,
color: Color(0xFF2BA4EC),
fontWeight: FontWeight.w600,
),
),
),
),
],
),
)
]), ]),
), ),
), ),
@@ -603,3 +441,126 @@ class _LoginEmailScreenState extends State<LoginEmailScreen> {
); );
} }
} }
class FormEmail extends StatelessWidget {
const FormEmail({
super.key,
required this.controller,
});
final LoginEmailController controller;
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(bottom: 20),
child: TextFormField(
controller: controller.email,
validator: (String? value) {
if (value == null || value.isEmpty) {
return 'Por favor ingrese un email';
}
final RegExp emailRegExp =
RegExp(r'^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$');
if (!emailRegExp.hasMatch(value)) {
return 'Por favor ingrese un email válido';
}
return null;
},
decoration: const InputDecoration(
border: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color(0xFFECECEC)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
errorBorder: OutlineInputBorder(
borderSide: BorderSide(color: Color.fromARGB(255, 184, 0, 0)),
borderRadius: BorderRadius.all(
Radius.circular(50),
)),
hintText: 'Hello@gmail.com',
fillColor: Color.fromARGB(255, 239, 239, 239),
filled: true,
prefixIcon: Icon(Icons.email_outlined),
),
),
);
}
}
class PaddingButtomBottom extends StatelessWidget {
const PaddingButtomBottom({
super.key,
required GlobalKey<FormState> formKey,
required this.controller,
}) : _formKey = formKey;
final GlobalKey<FormState> _formKey;
final LoginEmailController controller;
@override
Widget build(BuildContext context) {
return Padding(
padding: const EdgeInsets.only(bottom: 40),
child: Center(
child: PrimaryButtom(
onPressed: () {
if (_formKey.currentState!.validate()) {
LoginEmailController.instance.loginUser(
controller.email.text.trim(),
controller.password.text.trim(),
);
}
},
label: 'Iniciar'),
),
);
}
}
class RichTxtBottom extends StatelessWidget {
const RichTxtBottom({
super.key,
});
@override
Widget build(BuildContext context) {
return RichText(
text: TextSpan(
style: const TextStyle(
fontSize: 16.0,
color: Color(0xFF65676B),
fontFamily: 'Poppins',
),
children: [
const TextSpan(text: 'No estas registrado? '),
WidgetSpan(
child: GestureDetector(
onTap: () {
Navigator.pushReplacementNamed(context, '/register');
},
child: const Text(
'Registrarse',
style: TextStyle(
fontSize: 16.0,
color: Color(0xFF2BA4EC),
fontWeight: FontWeight.w600,
),
),
),
),
],
),
);
}
}