buildTextField method
Implementation
Widget buildTextField(
String? nextFocusName,
AFTextField field,
bool isFinal,
) {
final FocusNode focusNode = focusNodes[field.id]!;
final bool shouldObscureText = field.type == AFTextFieldType.PASSWORD ||
field.type == AFTextFieldType.NEW_PASSWORD;
FocusNode? nextFocusNode;
if (nextFocusName != null) {
nextFocusNode = focusNodes[nextFocusName];
}
return theme.textFieldWidgetBuilder(
context,
labelText: field.name,
validator: (e) => field.validate(field.parser(e)),
controller: textEditingControllers[field.id]!,
action: isFinal ? TextInputAction.done : TextInputAction.next,
autoFillHints: getAutoFillHintsFromFieldType(field),
obscureText: shouldObscureText,
focusNode: focusNode,
forceError: forceDisplayFieldsError,
completeAction: () async {
if (isFinal && enableFinalAction) {
await submitForm();
} else if (nextFocusNode != null) {
focusNode.unfocus();
FocusScope.of(context).requestFocus(nextFocusNode);
}
},
);
}