Skip to content

Commit

Permalink
Merge remote-tracking branch 'main/44-refatoracao' into 60-refatorar-…
Browse files Browse the repository at this point in the history
…backend
  • Loading branch information
JAugustoM committed Feb 3, 2025
2 parents 1315a83 + 6ef95db commit 56dd510
Show file tree
Hide file tree
Showing 3 changed files with 118 additions and 25 deletions.
77 changes: 57 additions & 20 deletions catavento/lib/screens/Login/components/input_purple.dart
Original file line number Diff line number Diff line change
@@ -1,43 +1,80 @@
import 'package:flutter/material.dart';

class PurpleTextField extends StatelessWidget {
class PurpleTextField extends StatefulWidget {
final String label;
final Icon icon;
final TextEditingController controller;
final bool isPassword;
final bool isSecurepassword;

const PurpleTextField({
super.key,
required this.label,
required this.icon,
required this.controller,
required this.isPassword,
required this.isSecurepassword,
});

@override
_PurpleTextFieldState createState() => _PurpleTextFieldState();
}

class _PurpleTextFieldState extends State<PurpleTextField> {
late bool _securePasswordState;

@override
void initState() {
super.initState();
// Inicializa o estado da visibilidade da senha com o valor recebido no construtor.
_securePasswordState = widget.isSecurepassword;
}

@override
Widget build(BuildContext context) {
return SizedBox(
width: 324,
height: 68,
child: TextField(
obscureText: isPassword,
controller: controller,
obscureText: _securePasswordState,
controller: widget.controller,
decoration: InputDecoration(
border: OutlineInputBorder(
borderSide: BorderSide(width: 2),
borderRadius: BorderRadius.circular(4.0)),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(width: 2, color: Color(0xFFACACAC))),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(width: 2, color: Color(0x80FC298F))),
prefixIcon: icon,
filled: true,
fillColor: Color(0xFFDEE1FF),
labelText: label,
labelStyle: TextStyle(
color: Color(0xCCACACAC),
fontSize: 16.0,
fontWeight: FontWeight.w100)),
border: OutlineInputBorder(
borderSide: BorderSide(width: 2),
borderRadius: BorderRadius.circular(4.0)),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(width: 2, color: Color(0xFFACACAC))),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(width: 2, color: Color(0x80FC298F))),
prefixIcon: widget.icon,
filled: true,
fillColor: Color(0xFFDEE1FF),
labelText: widget.label,
suffixIcon: togglePassword(),
labelStyle: TextStyle(
color: Color(0xCCACACAC),
fontSize: 16.0,
fontWeight: FontWeight.w100),
),
),
);
}

// Função para alternar a visibilidade da senha
Widget togglePassword() {
return IconButton(
onPressed: () {
setState(() {
_securePasswordState = !_securePasswordState;
});
},
icon: _securePasswordState
? Icon(
Icons.visibility,
color: Color(0xFFACACAC),
)
: Icon(
Icons.visibility_off,
color: Color(0xFFACACAC),
),
);
}
}
55 changes: 55 additions & 0 deletions catavento/lib/screens/Login/components/input_purple_email.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import 'package:flutter/material.dart';

class PurpleTextFieldEmail extends StatefulWidget {
final String label;
final Icon icon;
final TextEditingController controller;

const PurpleTextFieldEmail({
super.key,
required this.label,
required this.icon,
required this.controller,
});

@override
_PurpleTextFieldEmailState createState() => _PurpleTextFieldEmailState();
}

class _PurpleTextFieldEmailState extends State<PurpleTextFieldEmail> {
@override
void initState() {
super.initState();
// Inicializa o estado da visibilidade da senha com o valor recebido no construtor.
}

@override
Widget build(BuildContext context) {
return SizedBox(
width: 324,
height: 68,
child: TextField(
controller: widget.controller,
decoration: InputDecoration(
border: OutlineInputBorder(
borderSide: BorderSide(width: 2),
borderRadius: BorderRadius.circular(4.0)),
enabledBorder: OutlineInputBorder(
borderSide: BorderSide(width: 2, color: Color(0xFFACACAC))),
focusedBorder: OutlineInputBorder(
borderSide: BorderSide(width: 2, color: Color(0x80FC298F))),
prefixIcon: widget.icon,
filled: true,
fillColor: Color(0xFFDEE1FF),
labelText: widget.label,
labelStyle: TextStyle(
color: Color(0xCCACACAC),
fontSize: 16.0,
fontWeight: FontWeight.w100),
),
),
);
}

// Função para alternar a visibilidade da senha
}
11 changes: 6 additions & 5 deletions catavento/lib/screens/Login/login.dart
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import 'package:catavento/bloc/auth/auth_bloc.dart';
import 'package:catavento/main.dart';
import 'package:catavento/screens/Login/components/input_purple_email.dart';
import 'package:catavento/shared/widgets/bloc_snackbar.dart';
import 'package:flutter/material.dart';
import 'package:flutter_bloc/flutter_bloc.dart';
Expand All @@ -15,6 +16,7 @@ class Login extends StatefulWidget {

class _LoginState extends State<Login> {
bool isLoading = false;

final TextEditingController _emailController = TextEditingController();
final TextEditingController _senhaController = TextEditingController();

Expand Down Expand Up @@ -76,26 +78,25 @@ class _LoginState extends State<Login> {
Form(
child: Column(
children: [
PurpleTextField(
controller: _emailController,
PurpleTextFieldEmail(
label: "Digite o seu email",
icon: Icon(
Icons.person_outline,
color: Color(0xCCACACAC),
),
isPassword: false,
controller: _emailController,
),
SizedBox(
height: 20,
),
PurpleTextField(
controller: _senhaController,
isSecurepassword: true,
label: "Digite a sua senha",
icon: Icon(
Icons.lock_outline,
color: Color(0xCCACACAC),
),
isPassword: true,
),
],
)),
Expand All @@ -114,7 +115,7 @@ class _LoginState extends State<Login> {
Icons.keyboard_arrow_right_rounded,
color: Colors.white,
),
onPressed: () async {
onPressed: () {
setState(() {
isLoading = !isLoading;
});
Expand Down

0 comments on commit 56dd510

Please sign in to comment.