flutter_registration/lib/src/model/auth_text_field.dart

57 lines
1.4 KiB
Dart
Raw Normal View History

2022-11-01 09:19:20 +01:00
// SPDX-FileCopyrightText: 2022 Iconica
//
// SPDX-License-Identifier: BSD-3-Clause
2022-09-22 10:09:45 +02:00
import 'package:flutter/material.dart';
import 'package:flutter_registration/flutter_registration.dart';
class AuthTextField extends AuthField {
AuthTextField({
required super.name,
TextEditingController? textEditingController,
super.title,
2022-09-22 10:09:45 +02:00
super.validators = const [],
super.value = '',
this.textStyle,
this.onChange,
this.textFieldDecoration,
this.padding = const EdgeInsets.all(8.0),
2022-09-22 10:09:45 +02:00
}) {
textController =
textEditingController ?? TextEditingController(text: value);
2022-09-22 10:09:45 +02:00
}
late TextEditingController textController;
final TextStyle? textStyle;
final Function(String value)? onChange;
final InputDecoration? textFieldDecoration;
final EdgeInsets padding;
2022-09-22 10:09:45 +02:00
@override
Widget build(BuildContext context, Function onValueChanged) {
return Padding(
padding: padding,
child: TextFormField(
style: textStyle,
decoration: textFieldDecoration,
controller: textController,
onChanged: (v) {
value = v;
onChange?.call(value);
onValueChanged();
},
validator: (value) {
for (var validator in validators) {
var output = validator(value);
if (output != null) {
return output;
}
2022-09-22 10:09:45 +02:00
}
return null;
},
),
);
}
2022-09-22 10:09:45 +02:00
}