GTextField.confirmPassword constructor
GTextField.confirmPassword({
- Key? key,
- String? name,
- TextEditingController? controller,
- String? initialValue,
- TextEditingController? passwordController,
- String? passwordName,
- String label = 'Confirm password',
- String hint = 'Re-enter your password',
- TextInputAction textInputAction = TextInputAction.done,
- List<
TextInputFormatter> ? inputFormatters, - ConfirmPasswordValidationConfig validationConfig = const ConfirmPasswordValidationConfig(),
- ValidationMessageResolver<
ConfirmPasswordValidationIssue> validationMessageResolver = resolveConfirmPasswordValidationIssue, - GFormValidator? validator,
- GTextFieldConfig configure(
- GTextFieldConfig config
- void onChanged()?,
- void onFieldSubmitted()?,
- void onSaved()?,
- IconData? prefixIcon,
- FocusNode? focusNode,
- AutovalidateMode? autovalidateMode,
- bool? enabled,
- bool readOnly = false,
- int? maxLength,
- TextAlign textAlign = TextAlign.start,
- TextStyle? style,
- Iterable<
String> ? autofillHints = const [AutofillHints.password], - InputDecoration? decoration,
Implementation
factory GTextField.confirmPassword({
Key? key,
String? name,
TextEditingController? controller,
String? initialValue,
TextEditingController? passwordController,
String? passwordName,
String label = 'Confirm password',
String hint = 'Re-enter your password',
TextInputAction textInputAction = TextInputAction.done,
List<TextInputFormatter>? inputFormatters,
ConfirmPasswordValidationConfig validationConfig =
const ConfirmPasswordValidationConfig(),
ValidationMessageResolver<ConfirmPasswordValidationIssue>
validationMessageResolver =
resolveConfirmPasswordValidationIssue,
GFormValidator? validator,
GTextFieldConfig Function(GTextFieldConfig config)? configure,
void Function(String)? onChanged,
void Function(String)? onFieldSubmitted,
void Function(String?)? onSaved,
IconData? prefixIcon,
FocusNode? focusNode,
AutovalidateMode? autovalidateMode,
bool? enabled,
bool readOnly = false,
int? maxLength,
TextAlign textAlign = TextAlign.start,
TextStyle? style,
Iterable<String>? autofillHints = const [AutofillHints.password],
InputDecoration? decoration,
}) {
assert(
passwordController != null || passwordName != null,
'Provide either passwordController or passwordName.',
);
GFormValidator confirmValidator(TextEditingController passwordController) {
return (value) {
final message = ConfirmPasswordValidator(validationConfig)
.validate(
password: passwordController.text,
confirmation: value ?? '',
)
.fold(validationMessageResolver, (_) => null);
return message ?? validator?.call(value);
};
}
final config = GTextFieldConfig(
controller: controller,
name: name,
initialValue: initialValue,
label: label,
hint: hint,
keyboardType: TextInputType.visiblePassword,
textInputAction: textInputAction,
inputFormatters: inputFormatters,
validator:
passwordController == null
? null
: confirmValidator(passwordController),
onChanged: onChanged,
onFieldSubmitted: onFieldSubmitted,
onSaved: onSaved,
prefixIcon: prefixIcon ?? Icons.lock,
focusNode: focusNode,
autovalidateMode: autovalidateMode,
enabled: enabled,
readOnly: readOnly,
obscureText: true,
autocorrect: false,
enableSuggestions: false,
maxLength: maxLength,
textAlign: textAlign,
style: style,
autofillHints: autofillHints,
decoration: decoration,
);
return GTextField(
key: key,
config: configure?.call(config) ?? config,
obscurable: true,
resolveConfig:
passwordName == null
? null
: (context, config) {
final controller = GForm.controllerOf(
context,
).textController(passwordName);
return config.copyWith(validator: confirmValidator(controller));
},
);
}