Skip to content

Commit 851b774

Browse files
authored
Refactored common validation logic into a single static method that may be reused by each form builder widget. (#306)
1 parent db5b016 commit 851b774

26 files changed

+75
-210
lines changed

lib/src/fields/form_builder_checkbox.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -102,14 +102,8 @@ class _FormBuilderCheckboxState extends State<FormBuilderCheckbox> {
102102
key: _fieldKey,
103103
enabled: !_readOnly,
104104
initialValue: _initialValue,
105-
validator: (val) {
106-
for (int i = 0; i < widget.validators.length; i++) {
107-
if (widget.validators[i](val) != null) {
108-
return widget.validators[i](val);
109-
}
110-
}
111-
return null;
112-
},
105+
validator: (val) =>
106+
FormBuilderValidators.validateValidators(val, widget.validators),
113107
onSaved: (val) {
114108
var transformed;
115109
if (widget.valueTransformer != null) {

lib/src/fields/form_builder_checkbox_list.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -108,14 +108,8 @@ class _FormBuilderCheckboxListState extends State<FormBuilderCheckboxList> {
108108
key: _fieldKey,
109109
enabled: !_readOnly,
110110
initialValue: _initialValue ?? [],
111-
validator: (val) {
112-
for (int i = 0; i < widget.validators.length; i++) {
113-
if (widget.validators[i](val) != null) {
114-
return widget.validators[i](val);
115-
}
116-
}
117-
return null;
118-
},
111+
validator: (val) =>
112+
FormBuilderValidators.validateValidators(val, widget.validators),
119113
onSaved: (val) {
120114
var transformed;
121115
if (widget.valueTransformer != null) {

lib/src/fields/form_builder_chips_choice.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,8 @@ class _FormBuilderChoiceChipState extends State<FormBuilderChoiceChip> {
9898
key: _fieldKey,
9999
enabled: !_readOnly,
100100
initialValue: _initialValue,
101-
validator: (val) {
102-
for (int i = 0; i < widget.validators.length; i++) {
103-
if (widget.validators[i](val) != null) {
104-
return widget.validators[i](val);
105-
}
106-
}
107-
return null;
108-
},
101+
validator: (val) =>
102+
FormBuilderValidators.validateValidators(val, widget.validators),
109103
onSaved: (val) {
110104
var transformed;
111105
if (widget.valueTransformer != null) {

lib/src/fields/form_builder_chips_filter.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,8 @@ class _FormBuilderFilterChipState extends State<FormBuilderFilterChip> {
112112
key: _fieldKey,
113113
enabled: !_readOnly,
114114
initialValue: _initialValue ?? [],
115-
validator: (val) {
116-
for (int i = 0; i < widget.validators.length; i++) {
117-
if (widget.validators[i](val) != null) {
118-
return widget.validators[i](val);
119-
}
120-
}
121-
return null;
122-
},
115+
validator: (val) =>
116+
FormBuilderValidators.validateValidators(val, widget.validators),
123117
onSaved: (val) {
124118
var transformed;
125119
if (widget.valueTransformer != null) {

lib/src/fields/form_builder_chips_input.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -89,14 +89,8 @@ class _FormBuilderChipsInputState extends State<FormBuilderChipsInput> {
8989
key: _fieldKey,
9090
enabled: !_readOnly,
9191
initialValue: _initialValue ?? [],
92-
validator: (val) {
93-
for (int i = 0; i < widget.validators.length; i++) {
94-
if (widget.validators[i](val) != null) {
95-
return widget.validators[i](val);
96-
}
97-
}
98-
return null;
99-
},
92+
validator: (val) =>
93+
FormBuilderValidators.validateValidators(val, widget.validators),
10094
onSaved: (val) {
10195
var transformed;
10296
if (widget.valueTransformer != null) {

lib/src/fields/form_builder_color_picker.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -144,14 +144,8 @@ class _FormBuilderColorPickerState extends State<FormBuilderColorPicker> {
144144
key: _fieldKey,
145145
enabled: !_readOnly,
146146
initialValue: _initialValue,
147-
validator: (val) {
148-
for (int i = 0; i < widget.validators.length; i++) {
149-
if (widget.validators[i](val) != null) {
150-
return widget.validators[i](val);
151-
}
152-
}
153-
return null;
154-
},
147+
validator: (val) =>
148+
FormBuilderValidators.validateValidators(val, widget.validators),
155149
onSaved: (val) {
156150
var transformed;
157151
if (widget.valueTransformer != null) {

lib/src/fields/form_builder_country_picker.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,14 +86,8 @@ class _FormBuilderCountryPickerState extends State<FormBuilderCountryPicker> {
8686
key: _fieldKey,
8787
enabled: !_readOnly,
8888
initialValue: _initialValue,
89-
validator: (val) {
90-
for (int i = 0; i < widget.validators.length; i++) {
91-
if (widget.validators[i](val) != null) {
92-
return widget.validators[i](val);
93-
}
94-
}
95-
return null;
96-
},
89+
validator: (val) =>
90+
FormBuilderValidators.validateValidators(val, widget.validators),
9791
onSaved: (val) {
9892
dynamic transformed;
9993
if (widget.valueTransformer != null) {

lib/src/fields/form_builder_date_range_picker.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -186,14 +186,8 @@ class FormBuilderDateRangePickerState
186186
key: _fieldKey,
187187
enabled: !_readOnly,
188188
initialValue: _initialValue,
189-
validator: (val) {
190-
for (int i = 0; i < widget.validators.length; i++) {
191-
if (widget.validators[i](val) != null) {
192-
return widget.validators[i](val);
193-
}
194-
}
195-
return null;
196-
},
189+
validator: (val) =>
190+
FormBuilderValidators.validateValidators(val, widget.validators),
197191
onSaved: (val) {
198192
var transformed;
199193
if (widget.valueTransformer != null) {

lib/src/fields/form_builder_date_time_picker.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -274,14 +274,8 @@ class _FormBuilderDateTimePickerState extends State<FormBuilderDateTimePicker> {
274274
widget.onSaved(transformed ?? value);
275275
}
276276
},
277-
validator: (val) {
278-
for (int i = 0; i < widget.validators.length; i++) {
279-
if (widget.validators[i](val) != null) {
280-
return widget.validators[i](val);
281-
}
282-
}
283-
return null;
284-
},
277+
validator: (val) =>
278+
FormBuilderValidators.validateValidators(val, widget.validators),
285279
onShowPicker: _onShowPicker,
286280
onChanged: (val) {
287281
if (widget.onChanged != null) widget.onChanged(val);

lib/src/fields/form_builder_dropdown.dart

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -88,14 +88,8 @@ class _FormBuilderDropdownState extends State<FormBuilderDropdown> {
8888
key: _fieldKey,
8989
enabled: !_readOnly,
9090
initialValue: _initialValue,
91-
validator: (val) {
92-
for (int i = 0; i < widget.validators.length; i++) {
93-
if (widget.validators[i](val) != null) {
94-
return widget.validators[i](val);
95-
}
96-
}
97-
return null;
98-
},
91+
validator: (val) =>
92+
FormBuilderValidators.validateValidators(val, widget.validators),
9993
onSaved: (val) {
10094
var transformed;
10195
if (widget.valueTransformer != null) {

0 commit comments

Comments
 (0)