EditArea function

TextFormField EditArea({
  1. Key? key,
  2. TextEditingController? controller,
  3. String? initialValue,
  4. String? label,
  5. String? hint,
  6. int? minLength,
  7. int maxLength = 256,
  8. bool allowEmpty = true,
  9. OnValue<String>? onSubmitted,
  10. Widget? prefixIcon,
  11. String? helperText,
  12. String? errorText,
  13. Widget? suffixIcon,
  14. Color? cursorColor,
  15. TextValidator? validator,
  16. List<TextInputFormatter>? inputFormatters,
  17. FocusNode? focusNode,
  18. bool autofocus = false,
  19. int? maxLines = 6,
  20. int? minLines = 3,
  21. bool readonly = false,
  22. InputDecoration? decoration,
  23. void onChanged(
    1. String
    )?,
  24. void onTapOutside(
    1. PointerDownEvent
    )?,
})

Implementation

TextFormField EditArea({
  Key? key,
  TextEditingController? controller,
  String? initialValue,
  String? label,
  String? hint,
  int? minLength,
  int maxLength = 256,
  bool allowEmpty = true,
  OnValue<String>? onSubmitted,
  Widget? prefixIcon,
  String? helperText,
  String? errorText,
  Widget? suffixIcon,
  Color? cursorColor,
  TextValidator? validator,
  List<TextInputFormatter>? inputFormatters,
  FocusNode? focusNode,
  bool autofocus = false,
  int? maxLines = 6,
  int? minLines = 3,
  bool readonly = false,
  InputDecoration? decoration,
  void Function(String)? onChanged,
  void Function(PointerDownEvent)? onTapOutside,
}) {
  TextEditingController c = controller ?? TextEditingController(text: initialValue);
  FocusNode node = focusNode ?? FocusNode();
  var lv = LengthValidator(minLength: minLength ?? 0, maxLength: maxLength, allowEmpty: allowEmpty);
  TextValidator tv = validator == null ? lv : ListValidator([validator, lv]);

  return TextFormField(
    key: key ?? UniqueKey(),
    controller: c,
    maxLength: maxLength,
    validator: tv,
    maxLines: maxLines,
    minLines: minLines,
    onFieldSubmitted: onSubmitted,
    onChanged: onChanged,
    textAlign: TextAlign.start,
    keyboardType: TextInputType.multiline,
    textInputAction: TextInputAction.newline,
    inputFormatters: inputFormatters,
    readOnly: readonly,
    autofocus: autofocus,
    cursorColor: cursorColor,
    focusNode: node,
    onTapOutside: onTapOutside ?? (e) => node.unfocus(),
    decoration:
        decoration ??
        InputDecoration(
          labelText: label,
          hintText: hint,
          counterText: "",
          prefixIcon: prefixIcon,
          helperText: helperText,
          errorText: errorText,
          border: OutlineInputBorder(),
        ),
  );
}