validate method

bool validate({
  1. bool focusOnInvalid = true,
  2. bool autoScrollWhenFocusOnInvalid = false,
})

Validates the form with optional focus and scroll behavior

Implementation

bool validate({
  bool focusOnInvalid = true,
  bool autoScrollWhenFocusOnInvalid = false,
}) {
  if (widget.autovalidateMode ==
      ShadAutovalidateMode.alwaysAfterFirstValidation) {
    autovalidateMode.value = AutovalidateMode.always;
  }
  final hasError = !_formKey.currentState!.validate();
  if (hasError) {
    final wrongFields = _fields.values
        .where((element) => element.hasError)
        .toList();
    if (wrongFields.isNotEmpty) {
      if (focusOnInvalid) {
        wrongFields.first.focus();
      }
      if (autoScrollWhenFocusOnInvalid) {
        wrongFields.first.ensureVisible();
      }
    }
  }
  return !hasError;
}