mirror of
https://github.com/Iconica-Development/flutter_registration.git
synced 2025-05-19 05:23:43 +02:00
refactor
This commit is contained in:
parent
ed18aafabf
commit
34a0a3e395
3 changed files with 3 additions and 32 deletions
|
@ -27,18 +27,6 @@ class AuthScreen extends StatefulWidget {
|
|||
class _AuthScreenState extends State<AuthScreen> {
|
||||
int _index = 0;
|
||||
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
|
||||
Widget build(BuildContext context) {
|
||||
|
@ -77,23 +65,7 @@ class _AuthScreenState extends State<AuthScreen> {
|
|||
),
|
||||
),
|
||||
),
|
||||
TextFormField(
|
||||
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;
|
||||
},
|
||||
),
|
||||
field.build(),
|
||||
],
|
||||
)
|
||||
],
|
||||
|
|
|
@ -4,14 +4,12 @@ abstract class AuthField {
|
|||
AuthField({
|
||||
required this.name,
|
||||
required this.title,
|
||||
this.obscureText = false,
|
||||
this.validators = const [],
|
||||
this.value = '',
|
||||
});
|
||||
|
||||
final String name;
|
||||
final String title;
|
||||
final bool obscureText;
|
||||
List<String? Function(String?)> validators;
|
||||
String value;
|
||||
|
||||
|
|
|
@ -5,14 +5,15 @@ class AuthTextField extends AuthField {
|
|||
AuthTextField({
|
||||
required super.name,
|
||||
required super.title,
|
||||
super.obscureText = false,
|
||||
super.validators = const [],
|
||||
super.value = '',
|
||||
this.obscureText = false,
|
||||
}) {
|
||||
_textEditingController = TextEditingController();
|
||||
}
|
||||
|
||||
late TextEditingController _textEditingController;
|
||||
final bool obscureText;
|
||||
|
||||
@override
|
||||
Widget build() => TextFormField(
|
||||
|
|
Loading…
Reference in a new issue