tecban_mobile/lib/src/shared/widgets/inputs/password_input.dart
steeve ddfb60b970 Changes to be committed:
new file:   lib/assets/images/algodao.png
	new file:   lib/assets/images/cafe.png
	new file:   lib/assets/images/cana.png
	new file:   lib/assets/images/milho.png
	new file:   lib/assets/images/soja.png
	new file:   lib/assets/images/trigo.png
	deleted:    lib/assets/logos/old/logo_branca.png
	deleted:    lib/assets/logos/old/logo_primary.png
	modified:   lib/src/app/auth/screens/cadastro.dart
	modified:   lib/src/app/auth/screens/codigoverifica.dart
	modified:   lib/src/app/auth/screens/login.dart
	new file:   lib/src/app/base/screens/navigator.dart
	new file:   lib/src/app/home/screens/home_screen.dart
	new file:   lib/src/app/home/widgets/card_info_card.dart
	modified:   lib/src/router.dart
	new file:   lib/src/shared/widgets/back_button.dart
	modified:   lib/src/shared/widgets/buttons/simple_button.dart
	modified:   lib/src/shared/widgets/inputs/code_input.dart
	modified:   lib/src/shared/widgets/inputs/password_input.dart
	new file:   lib/src/shared/widgets/inputs/search_controller.dart
	modified:   lib/src/shared/widgets/inputs/simple_input.dart
	modified:   pubspec.lock
	modified:   pubspec.yaml
2024-01-30 23:32:54 -03:00

95 lines
3.0 KiB
Dart

import 'package:flutter/material.dart';
import 'package:recomendagro/src/shared/utils/enums.dart';
import 'package:recomendagro/src/shared/utils/input_utils.dart';
import 'package:recomendagro/src/shared/widgets/text/text_error.dart';
import '../../../../assets/theme/colors.dart';
import 'theme/input_theme.dart';
class PasswordInput extends StatefulWidget {
final TextEditingController? controller;
final String? title;
final bool? validator;
final String? hintText;
final ValueChanged<String>? onFieldSubmitted;
final SizeInput? size;
const PasswordInput({
super.key,
this.hintText,
this.onFieldSubmitted,
this.size=SizeInput.lg,
this.validator=false,
this.title, this.controller
});
@override
State<PasswordInput> createState() => _PasswordInputState();
}
class _PasswordInputState extends State<PasswordInput> {
StatusTextField statusValided = StatusTextField.valided;
@override
Widget build(BuildContext context) {
return Column(
children: [
Container(
height: InputUtils.defineSize(widget.size),
padding: const EdgeInsets.symmetric(horizontal: 15),
decoration: BoxDecoration(
border: Border.all(
width: 1,
color: InputUtils.getColorBorder(statusValided: statusValided, enabled: true)
),
borderRadius: BorderRadius.circular(10)
),
child: TextFormField(
controller: widget.controller,
onChanged: (value) {
if (value.length < 3) {
setState(() => statusValided = StatusTextField.peloMenosTresDigitos);
}else{
setState(() => statusValided = StatusTextField.valided);
}
},
validator: (value){
setState(() => statusValided = StatusTextField.valided);
if(widget.validator == false)return null;
if (value!.isEmpty) {
setState(() => statusValided = StatusTextField.errorFieldRequired);
return '';
}
if (value.length < 3) {
setState(() => statusValided = StatusTextField.peloMenosTresDigitos);
return '';
}
return null;
},
cursorHeight: AppFontSize.cursorHeight,
style: Theme.of(context).textTheme.bodyLarge?.copyWith(
height: 1.5,
fontSize: AppFontSize.fontSize15,
fontWeight: FontWeight.w600,
color: AppColorLight.text01Color
),
obscureText: true,
onFieldSubmitted: widget.onFieldSubmitted,
decoration: inputThemeDecoration(
context,
statusTextField: statusValided,
title: widget.title,
hintText: widget.hintText
)
),
),
if(statusValided != StatusTextField.valided)
TextErrorMessageWidget(statusTextField: statusValided)
],
);
}
}