diff --git a/lib/src/components/primary_btn.dart b/lib/src/components/primary_btn.dart new file mode 100644 index 0000000..6c4d890 --- /dev/null +++ b/lib/src/components/primary_btn.dart @@ -0,0 +1,32 @@ +import 'package:flutter/material.dart'; + +class PrimaryButtom extends StatelessWidget { + final VoidCallback onPressed; + final String label; + + const PrimaryButtom( + {super.key, required this.onPressed, required this.label}); + + @override + Widget build(BuildContext context) { + return ElevatedButton( + onPressed: onPressed, + style: ElevatedButton.styleFrom( + backgroundColor: const Color(0xFF2BA4EC), + shape: RoundedRectangleBorder( + borderRadius: BorderRadius.circular(50), + ), + elevation: 0, + minimumSize: const Size(230, 60), + ), + child: Text( + label, + style: const TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 18, + ), + ), + ); + } +} diff --git a/lib/src/controllers/register_controller.dart b/lib/src/controllers/register_controller.dart index 55d91a6..c0b3bc8 100644 --- a/lib/src/controllers/register_controller.dart +++ b/lib/src/controllers/register_controller.dart @@ -5,7 +5,6 @@ import 'package:prosappco/src/authentication/authentication_repository.dart'; class RegisterController extends GetxController { static RegisterController get instance => Get.find(); - final name = TextEditingController(); final email = TextEditingController(); final password = TextEditingController(); diff --git a/lib/src/screens/login.dart b/lib/src/screens/login.dart index 30ec0a1..3dd4c33 100644 --- a/lib/src/screens/login.dart +++ b/lib/src/screens/login.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:intl_phone_field/intl_phone_field.dart'; import 'package:prosappco/src/authentication/authentication_repository.dart'; +import 'package:prosappco/src/components/primary_btn.dart'; import 'package:prosappco/src/controllers/phone_auth_controller.dart'; import 'package:prosappco/src/screens/code_validation.dart'; import 'package:prosappco/src/screens/login_email.dart'; @@ -122,37 +123,22 @@ class _LoginScreenState extends State { style: TextStyle(fontSize: 13.0, color: Color(0xFF65676B))), ), Padding( - padding: EdgeInsets.only(bottom: 30), + padding: const EdgeInsets.only(bottom: 30), child: Center( - child: ElevatedButton( - onPressed: () { - if (_formKey.currentState!.validate()) { - PhoneAuthController.instance.phoneAuthentication( - completePhoneNumber.trim(), - ); - Get.to(() => CodeValidationScreen( - phoneNumber: completePhoneNumber.trim(), - )); - } - }, - child: Text( - 'Enviar código', - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, - fontSize: 18, - ), + child: PrimaryButtom( + onPressed: () { + if (_formKey.currentState!.validate()) { + PhoneAuthController.instance.phoneAuthentication( + completePhoneNumber.trim(), + ); + Get.to(() => CodeValidationScreen( + phoneNumber: completePhoneNumber.trim(), + )); + } + }, + label: 'Enviar código', ), - style: ElevatedButton.styleFrom( - primary: Color(0xFF2BA4EC), // Color del botón - shape: RoundedRectangleBorder( - borderRadius: - BorderRadius.circular(50), // Bordes redondeados - ), - elevation: 0, - minimumSize: Size(230, 60), // Tamaño mínimo del botón - ), - )), + ), ), Padding( padding: EdgeInsets.only(bottom: 27), diff --git a/lib/src/screens/login_email.dart b/lib/src/screens/login_email.dart index 996ddf5..35acce2 100644 --- a/lib/src/screens/login_email.dart +++ b/lib/src/screens/login_email.dart @@ -3,6 +3,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get.dart'; import 'package:prosappco/main.dart'; import 'package:prosappco/src/authentication/authentication_repository.dart'; +import 'package:prosappco/src/components/primary_btn.dart'; import 'package:prosappco/src/controllers/login_email_controller.dart'; import 'package:prosappco/src/screens/login.dart'; import 'package:prosappco/src/screens/welcome.dart'; @@ -215,30 +216,8 @@ class _LoginEmailScreenState extends State { Padding( padding: const EdgeInsets.only(bottom: 40), child: Center( - child: ElevatedButton( - onPressed: () { - // controller.validateData( - // context, - // controller.email.text.trim(), - // controller.password.text.trim()); - }, - child: Text( - 'Iniciar', - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, - fontSize: 18, - ), - ), - style: ElevatedButton.styleFrom( - primary: Color(0xFF2BA4EC), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(50), - ), - elevation: 0, - minimumSize: Size(230, 60), - ), - )), + child: PrimaryButtom(onPressed: () {}, label: 'Iniciar'), + ), ), RichText( text: TextSpan( diff --git a/lib/src/screens/register.dart b/lib/src/screens/register.dart index 483e124..bc058d5 100644 --- a/lib/src/screens/register.dart +++ b/lib/src/screens/register.dart @@ -4,6 +4,7 @@ import 'package:font_awesome_flutter/font_awesome_flutter.dart'; import 'package:get/get.dart'; import 'package:prosappco/main.dart'; import 'package:prosappco/src/authentication/authentication_repository.dart'; +import 'package:prosappco/src/components/primary_btn.dart'; import 'package:prosappco/src/controllers/register_controller.dart'; import 'package:prosappco/src/screens/login.dart'; import 'package:prosappco/src/screens/welcome.dart'; @@ -138,37 +139,6 @@ class _RegisterScreenState extends State { key: _formKey, child: Column( children: [ - // const Padding( - // padding: EdgeInsets.only(bottom: 5), - // child: Align( - // alignment: Alignment.topLeft, - // child: Text('Nombre', - // style: TextStyle( - // fontSize: 18.0, color: Color(0xFF65676B))), - // )), - // Padding( - // padding: EdgeInsets.only(bottom: 18), - // child: TextFormField( - // controller: controller.name, - // decoration: InputDecoration( - // 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), - // )), - // hintText: 'Nombre y Apellido', - // fillColor: Color.fromARGB(255, 239, 239, 239), - // filled: true, - // prefixIcon: Icon(Icons.person_outline)), - // ), - // ), const Padding( padding: EdgeInsets.only(bottom: 5), child: Align( @@ -209,7 +179,7 @@ class _RegisterScreenState extends State { fontSize: 18.0, color: Color(0xFF65676B))), )), Padding( - padding: EdgeInsets.only(bottom: 25), + padding: const EdgeInsets.only(bottom: 25), child: TextFormField( controller: controller.password, obscureText: _obscureText, @@ -251,31 +221,17 @@ class _RegisterScreenState extends State { Padding( padding: const EdgeInsets.only(bottom: 25), child: Center( - child: ElevatedButton( - onPressed: () { - if (_formKey.currentState!.validate()) { - RegisterController.instance.registerUser( - controller.email.text.trim(), - controller.password.text.trim()); - } - }, - child: Text( - 'Registrarme', - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, - fontSize: 18, - ), + child: PrimaryButtom( + onPressed: () { + if (_formKey.currentState!.validate()) { + RegisterController.instance.registerUser( + controller.email.text.trim(), + controller.password.text.trim()); + } + }, + label: 'Registrarme', ), - style: ElevatedButton.styleFrom( - primary: Color(0xFF2BA4EC), - shape: RoundedRectangleBorder( - borderRadius: BorderRadius.circular(50), - ), - elevation: 0, - minimumSize: Size(230, 60), - ), - )), + ), ), RichText( text: TextSpan(