This commit is contained in:
Stein Milder 2022-09-22 10:22:32 +02:00
parent ed18aafabf
commit 34a0a3e395
3 changed files with 3 additions and 32 deletions

View file

@ -27,18 +27,6 @@ class AuthScreen extends StatefulWidget {
class _AuthScreenState extends State<AuthScreen> { class _AuthScreenState extends State<AuthScreen> {
int _index = 0; int _index = 0;
final _formKey = GlobalKey<FormState>(); final _formKey = GlobalKey<FormState>();
final HashMap<AuthField, TextEditingController> _textEditingControllers =
HashMap();
@override
void initState() {
for (var step in widget.steps) {
for (var field in step.fields) {
_textEditingControllers[field] = TextEditingController();
}
}
super.initState();
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
@ -77,23 +65,7 @@ class _AuthScreenState extends State<AuthScreen> {
), ),
), ),
), ),
TextFormField( field.build(),
controller: _textEditingControllers[field],
obscureText: field.obscureText,
onChanged: (value) {
field.value = value;
},
validator: (value) {
for (var validator in field.validators) {
var output = validator(value);
if (output != null) {
return output;
}
}
return null;
},
),
], ],
) )
], ],

View file

@ -4,14 +4,12 @@ abstract class AuthField {
AuthField({ AuthField({
required this.name, required this.name,
required this.title, required this.title,
this.obscureText = false,
this.validators = const [], this.validators = const [],
this.value = '', this.value = '',
}); });
final String name; final String name;
final String title; final String title;
final bool obscureText;
List<String? Function(String?)> validators; List<String? Function(String?)> validators;
String value; String value;

View file

@ -5,14 +5,15 @@ class AuthTextField extends AuthField {
AuthTextField({ AuthTextField({
required super.name, required super.name,
required super.title, required super.title,
super.obscureText = false,
super.validators = const [], super.validators = const [],
super.value = '', super.value = '',
this.obscureText = false,
}) { }) {
_textEditingController = TextEditingController(); _textEditingController = TextEditingController();
} }
late TextEditingController _textEditingController; late TextEditingController _textEditingController;
final bool obscureText;
@override @override
Widget build() => TextFormField( Widget build() => TextFormField(