|
1 | 1 | import 'package:flutter/widgets.dart';
|
2 |
| -import 'package:flutter_form_builder/src/extensions/autovalidatemode_extension.dart'; |
3 | 2 | import 'package:flutter_form_builder/flutter_form_builder.dart';
|
4 | 3 |
|
5 | 4 | /// A container for form fields.
|
@@ -107,6 +106,12 @@ class FormBuilderState extends State<FormBuilder> {
|
107 | 106 | final Map<String, dynamic> _savedValue = {};
|
108 | 107 | // Because dart type system will not accept ValueTransformer<dynamic>
|
109 | 108 | final Map<String, Function> _transformers = {};
|
| 109 | + bool _focusOnInvalid = true; |
| 110 | + |
| 111 | + /// Will be true if will focus on invalid field when validate |
| 112 | + /// |
| 113 | + /// Only used to internal logic |
| 114 | + bool get focusOnInvalid => _focusOnInvalid; |
110 | 115 |
|
111 | 116 | bool get enabled => widget.enabled;
|
112 | 117 |
|
@@ -161,9 +166,6 @@ class FormBuilderState extends State<FormBuilder> {
|
161 | 166 |
|
162 | 167 | void setInternalFieldValue<T>(String name, T? value) {
|
163 | 168 | _instantValue[name] = value;
|
164 |
| - if (widget.autovalidateMode?.isEnable ?? false) { |
165 |
| - validate(); |
166 |
| - } |
167 | 169 | widget.onChanged?.call();
|
168 | 170 | }
|
169 | 171 |
|
@@ -253,6 +255,7 @@ class FormBuilderState extends State<FormBuilder> {
|
253 | 255 | bool focusOnInvalid = true,
|
254 | 256 | bool autoScrollWhenFocusOnInvalid = false,
|
255 | 257 | }) {
|
| 258 | + _focusOnInvalid = focusOnInvalid; |
256 | 259 | final hasError = !_formKey.currentState!.validate();
|
257 | 260 | if (hasError) {
|
258 | 261 | final wrongFields =
|
|
0 commit comments