Skip to content

Commit c54b89a

Browse files
committed
Avoid redeclaring FormBuilderField attributes in fields
1 parent 07a608b commit c54b89a

26 files changed

+430
-623
lines changed

example/lib/sources/complete_form.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,8 +281,9 @@ class CompleteFormState extends State<CompleteForm> {
281281
},
282282
),
283283
FormBuilderRadioList(
284-
decoration:
285-
InputDecoration(labelText: 'My chosen language'),
284+
decoration: InputDecoration(
285+
labelText: 'My chosen language',
286+
),
286287
attribute: 'best_language',
287288
onChanged: _onChanged,
288289
validator: FormBuilderValidators.compose(

lib/src/fields/form_builder_checkbox.dart

Lines changed: 17 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,6 @@ import 'package:flutter/widgets.dart';
33
import 'package:flutter_form_builder/flutter_form_builder.dart';
44

55
class FormBuilderCheckbox extends FormBuilderField<bool> {
6-
@override
7-
final String attribute;
8-
@override
9-
final FormFieldValidator validator;
10-
@override
11-
final bool initialValue;
12-
@override
13-
final bool readOnly;
14-
@override
15-
final InputDecoration decoration;
16-
@override
17-
final ValueChanged onChanged;
18-
@override
19-
final ValueTransformer valueTransformer;
206
final Widget title;
217
final Widget subtitle;
228
final Widget secondary;
@@ -26,15 +12,20 @@ class FormBuilderCheckbox extends FormBuilderField<bool> {
2612
final EdgeInsets contentPadding;
2713

2814
FormBuilderCheckbox({
15+
//From Super
2916
Key key,
30-
@required this.attribute,
17+
@required String attribute,
18+
FormFieldValidator validator,
19+
bool initialValue,
20+
bool readOnly,
21+
InputDecoration decoration,
22+
ValueChanged onChanged,
23+
ValueTransformer valueTransformer,
24+
bool enabled = true,
25+
FormFieldSetter onSaved,
26+
bool autovalidate = false,
27+
VoidCallback onReset,
3128
@required this.title,
32-
this.initialValue,
33-
this.validator,
34-
this.readOnly = false,
35-
this.decoration = const InputDecoration(),
36-
this.onChanged,
37-
this.valueTransformer,
3829
this.activeColor,
3930
this.checkColor,
4031
this.subtitle,
@@ -49,6 +40,11 @@ class FormBuilderCheckbox extends FormBuilderField<bool> {
4940
valueTransformer: valueTransformer,
5041
onChanged: onChanged,
5142
readOnly: readOnly,
43+
autovalidate: autovalidate,
44+
onSaved: onSaved,
45+
enabled: enabled,
46+
onReset: onReset,
47+
decoration: decoration,
5248
builder: (FormFieldState field) {
5349
final _FormBuilderCheckboxState state = field;
5450

lib/src/fields/form_builder_checkbox_list.dart

Lines changed: 17 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,6 @@ import 'package:flutter/widgets.dart';
33
import 'package:flutter_form_builder/flutter_form_builder.dart';
44

55
class FormBuilderCheckboxList<T> extends FormBuilderField<List<T>> {
6-
@override
7-
final String attribute;
8-
@override
9-
final FormFieldValidator validator;
10-
@override
11-
final List<T> initialValue;
12-
@override
13-
final bool readOnly;
14-
@override
15-
final InputDecoration decoration;
16-
@override
17-
final ValueChanged onChanged;
18-
@override
19-
final ValueTransformer valueTransformer;
20-
216
final List<FormBuilderFieldOption> options;
227
final ListTileControlAffinity controlAffinity;
238
final Color activeColor;
@@ -27,15 +12,20 @@ class FormBuilderCheckboxList<T> extends FormBuilderField<List<T>> {
2712

2813
FormBuilderCheckboxList({
2914
Key key,
30-
@required this.attribute,
15+
//From Super
16+
@required String attribute,
17+
FormFieldValidator validator,
18+
List<T> initialValue,
19+
bool readOnly = false,
20+
InputDecoration decoration = const InputDecoration(),
21+
ValueChanged onChanged,
22+
ValueTransformer valueTransformer,
23+
bool enabled = true,
24+
FormFieldSetter onSaved,
25+
bool autovalidate = false,
26+
VoidCallback onReset,
3127
@required this.options,
32-
this.initialValue,
33-
this.validator,
34-
this.readOnly = false,
3528
this.controlAffinity = ListTileControlAffinity.leading,
36-
this.decoration = const InputDecoration(),
37-
this.onChanged,
38-
this.valueTransformer,
3929
this.activeColor,
4030
this.checkColor,
4131
// this.secondary,
@@ -47,6 +37,11 @@ class FormBuilderCheckboxList<T> extends FormBuilderField<List<T>> {
4737
valueTransformer: valueTransformer,
4838
onChanged: onChanged,
4939
readOnly: readOnly,
40+
autovalidate: autovalidate,
41+
onSaved: onSaved,
42+
enabled: enabled,
43+
onReset: onReset,
44+
decoration: decoration,
5045
builder: (FormFieldState field) {
5146
final _FormBuilderCheckboxListState<T> state = field;
5247
var checkboxList = [];

lib/src/fields/form_builder_chips_input.dart

Lines changed: 21 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,8 @@ import 'package:flutter/material.dart';
22
import 'package:flutter_chips_input/flutter_chips_input.dart';
33
import 'package:flutter_form_builder/flutter_form_builder.dart';
44

5-
class FormBuilderChipsInput<T> extends FormBuilderField {
6-
@override
7-
final String attribute;
8-
@override
9-
final FormFieldValidator validator;
10-
@override
11-
final List<T> initialValue;
12-
@override
13-
final bool readOnly;
14-
@override
15-
final InputDecoration decoration;
16-
@override
17-
final ValueChanged onChanged;
18-
@override
19-
final ValueTransformer valueTransformer;
20-
5+
class FormBuilderChipsInput<T> extends FormBuilderField<List<T>> {
216
final ChipsInputSuggestions findSuggestions;
22-
237
// final ValueChanged<List<T>> onChanged;
248
final ChipsBuilder<T> chipBuilder;
259
final ChipsBuilder<T> suggestionBuilder;
@@ -33,26 +17,29 @@ class FormBuilderChipsInput<T> extends FormBuilderField {
3317
final bool obscureText;
3418
final double suggestionsBoxMaxHeight;
3519
final TextCapitalization textCapitalization;
36-
@override
37-
final FormFieldSetter onSaved;
3820
final FocusNode focusNode;
3921
final bool allowChipEditing;
4022
final bool autofocus;
4123
final TextOverflow textOverflow;
4224

4325
FormBuilderChipsInput({
4426
Key key,
45-
@required this.attribute,
27+
//From Super
28+
@required String attribute,
29+
FormFieldValidator validator,
30+
List<T> initialValue = const [],
31+
bool readOnly = false,
32+
InputDecoration decoration = const InputDecoration(),
33+
ValueChanged onChanged,
34+
ValueTransformer valueTransformer,
35+
bool enabled = true,
36+
FormFieldSetter onSaved,
37+
bool autovalidate = false,
38+
VoidCallback onReset,
4639
@required this.chipBuilder,
4740
@required this.suggestionBuilder,
4841
@required this.findSuggestions,
49-
this.initialValue = const [],
50-
this.validator,
51-
this.readOnly = false,
52-
this.decoration = const InputDecoration(),
5342
this.maxChips,
54-
this.onChanged,
55-
this.valueTransformer,
5643
this.textStyle,
5744
this.actionLabel,
5845
this.suggestionsBoxMaxHeight,
@@ -62,7 +49,6 @@ class FormBuilderChipsInput<T> extends FormBuilderField {
6249
this.keyboardAppearance = Brightness.light,
6350
this.obscureText = false,
6451
this.textCapitalization = TextCapitalization.none,
65-
this.onSaved,
6652
this.focusNode,
6753
this.allowChipEditing = false,
6854
this.autofocus = false,
@@ -75,6 +61,11 @@ class FormBuilderChipsInput<T> extends FormBuilderField {
7561
valueTransformer: valueTransformer,
7662
onChanged: onChanged,
7763
readOnly: readOnly,
64+
autovalidate: autovalidate,
65+
onSaved: onSaved,
66+
enabled: enabled,
67+
onReset: onReset,
68+
decoration: decoration,
7869
builder: (FormFieldState field) {
7970
final _FormBuilderChipsInputState state = field;
8071

@@ -110,10 +101,10 @@ class FormBuilderChipsInput<T> extends FormBuilderField {
110101
});
111102

112103
@override
113-
_FormBuilderChipsInputState createState() => _FormBuilderChipsInputState();
104+
_FormBuilderChipsInputState<T> createState() => _FormBuilderChipsInputState();
114105
}
115106

116-
class _FormBuilderChipsInputState extends FormBuilderFieldState {
107+
class _FormBuilderChipsInputState<T> extends FormBuilderFieldState<List<T>> {
117108
@override
118-
FormBuilderChipsInput get widget => super.widget;
109+
FormBuilderChipsInput<T> get widget => super.widget;
119110
}

lib/src/fields/form_builder_choice_chips.dart

Lines changed: 25 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,7 @@ import 'package:flutter/material.dart';
22
import 'package:flutter/widgets.dart';
33
import 'package:flutter_form_builder/flutter_form_builder.dart';
44

5-
class FormBuilderChoiceChip extends FormBuilderField<dynamic> {
6-
// FormBuilder Settings
7-
@override
8-
final String attribute;
9-
@override
10-
final FormFieldValidator validator;
11-
@override
12-
final dynamic initialValue;
13-
@override
14-
final bool readOnly;
15-
@override
16-
final InputDecoration decoration;
17-
@override
18-
final ValueChanged onChanged;
19-
@override
20-
final FormFieldSetter onSaved;
21-
@override
22-
final ValueTransformer valueTransformer;
5+
class FormBuilderChoiceChip<T> extends FormBuilderField<T> {
236
final List<FormBuilderFieldOption> options;
247

258
// FilterChip Settings
@@ -47,15 +30,19 @@ class FormBuilderChoiceChip extends FormBuilderField<dynamic> {
4730

4831
FormBuilderChoiceChip({
4932
Key key,
50-
@required this.attribute,
33+
//From Super
34+
@required String attribute,
35+
FormFieldValidator validator,
36+
T initialValue,
37+
bool readOnly = false,
38+
InputDecoration decoration = const InputDecoration(),
39+
ValueChanged onChanged,
40+
ValueTransformer valueTransformer,
41+
bool enabled = true,
42+
FormFieldSetter onSaved,
43+
bool autovalidate = false,
44+
VoidCallback onReset,
5145
@required this.options,
52-
this.initialValue,
53-
this.validator,
54-
this.readOnly = false,
55-
this.decoration = const InputDecoration(),
56-
this.onChanged,
57-
this.valueTransformer,
58-
this.onSaved,
5946
this.selectedColor,
6047
this.disabledColor,
6148
this.backgroundColor,
@@ -85,8 +72,13 @@ class FormBuilderChoiceChip extends FormBuilderField<dynamic> {
8572
valueTransformer: valueTransformer,
8673
onChanged: onChanged,
8774
readOnly: readOnly,
88-
builder: (FormFieldState field) {
89-
final _FormBuilderChoiceChipState state = field;
75+
autovalidate: autovalidate,
76+
onSaved: onSaved,
77+
enabled: enabled,
78+
onReset: onReset,
79+
decoration: decoration,
80+
builder: (FormFieldState<T> field) {
81+
final _FormBuilderChoiceChipState<T> state = field;
9082

9183
return InputDecorator(
9284
decoration: decoration.copyWith(
@@ -133,7 +125,10 @@ class FormBuilderChoiceChip extends FormBuilderField<dynamic> {
133125
});
134126

135127
@override
136-
_FormBuilderChoiceChipState createState() => _FormBuilderChoiceChipState();
128+
_FormBuilderChoiceChipState<T> createState() => _FormBuilderChoiceChipState();
137129
}
138130

139-
class _FormBuilderChoiceChipState extends FormBuilderFieldState<dynamic> {}
131+
class _FormBuilderChoiceChipState<T> extends FormBuilderFieldState<T> {
132+
@override
133+
FormBuilderChoiceChip<T> get widget => super.widget;
134+
}

lib/src/fields/form_builder_color_picker.dart

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ class FormBuilderColorPickerField extends FormBuilderField<Color> {
3737
ValueTransformer valueTransformer,
3838
ValueChanged onChanged,
3939
FormFieldSetter<Color> onSaved,
40-
//
40+
VoidCallback onReset,
4141
this.controller,
4242
this.focusNode,
4343
this.readOnly = false,
@@ -75,12 +75,14 @@ class FormBuilderColorPickerField extends FormBuilderField<Color> {
7575
initialValue: initialValue,
7676
attribute: attribute,
7777
validator: validator,
78-
enabled: enabled,
79-
autovalidate: autovalidate,
8078
valueTransformer: valueTransformer,
8179
onChanged: onChanged,
82-
readOnly: true,
80+
readOnly: readOnly,
81+
autovalidate: autovalidate,
8382
onSaved: onSaved,
83+
enabled: enabled,
84+
onReset: onReset,
85+
decoration: decoration,
8486
builder: (FormFieldState field) {
8587
final _FormBuilderColorPickerFieldState state = field;
8688
return TextField(

0 commit comments

Comments
 (0)