Skip to content

Commit 58c1f46

Browse files
Merge pull request #1139 from nrallakis/main
Use dart 2.17 super initiliazers to simplify code
2 parents 343229e + 4fdc522 commit 58c1f46

17 files changed

+265
-433
lines changed

lib/src/fields/form_builder_checkbox.dart

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -68,25 +68,24 @@ class FormBuilderCheckbox extends FormBuilderField<bool> {
6868

6969
/// Creates a single Checkbox field
7070
FormBuilderCheckbox({
71-
//From Super
72-
Key? key,
73-
required String name,
74-
FormFieldValidator<bool>? validator,
75-
bool? initialValue,
76-
InputDecoration decoration = const InputDecoration(
71+
super.key,
72+
required super.name,
73+
super.validator,
74+
super.initialValue,
75+
super.decoration = const InputDecoration(
7776
border: InputBorder.none,
7877
focusedBorder: InputBorder.none,
7978
enabledBorder: InputBorder.none,
8079
errorBorder: InputBorder.none,
8180
disabledBorder: InputBorder.none,
8281
),
83-
ValueChanged<bool?>? onChanged,
84-
ValueTransformer<bool?>? valueTransformer,
85-
bool enabled = true,
86-
FormFieldSetter<bool?>? onSaved,
87-
AutovalidateMode autovalidateMode = AutovalidateMode.disabled,
88-
VoidCallback? onReset,
89-
FocusNode? focusNode,
82+
super.onChanged,
83+
super.valueTransformer,
84+
super.enabled,
85+
super.onSaved,
86+
super.autovalidateMode = AutovalidateMode.disabled,
87+
super.onReset,
88+
super.focusNode,
9089
required this.title,
9190
this.activeColor,
9291
this.autofocus = false,
@@ -99,18 +98,6 @@ class FormBuilderCheckbox extends FormBuilderField<bool> {
9998
this.subtitle,
10099
this.tristate = false,
101100
}) : super(
102-
key: key,
103-
initialValue: initialValue,
104-
name: name,
105-
validator: validator,
106-
valueTransformer: valueTransformer,
107-
onChanged: onChanged,
108-
autovalidateMode: autovalidateMode,
109-
onSaved: onSaved,
110-
enabled: enabled,
111-
onReset: onReset,
112-
decoration: decoration,
113-
focusNode: focusNode,
114101
builder: (FormFieldState<bool?> field) {
115102
final state = field as _FormBuilderCheckboxState;
116103

lib/src/fields/form_builder_checkbox_group.dart

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -27,19 +27,18 @@ class FormBuilderCheckboxGroup<T> extends FormBuilderField<List<T>> {
2727

2828
/// Creates a list of Checkboxes for selecting multiple options
2929
FormBuilderCheckboxGroup({
30-
Key? key,
31-
//From Super
32-
required String name,
33-
FormFieldValidator<List<T>>? validator,
34-
List<T>? initialValue,
35-
InputDecoration decoration = const InputDecoration(),
36-
ValueChanged<List<T>?>? onChanged,
37-
ValueTransformer<List<T>?>? valueTransformer,
38-
bool enabled = true,
39-
FormFieldSetter<List<T>>? onSaved,
40-
AutovalidateMode autovalidateMode = AutovalidateMode.disabled,
41-
VoidCallback? onReset,
42-
FocusNode? focusNode,
30+
super.key,
31+
required super.name,
32+
super.validator,
33+
super.initialValue,
34+
super.decoration,
35+
super.onChanged,
36+
super.valueTransformer,
37+
super.enabled,
38+
super.onSaved,
39+
super.autovalidateMode = AutovalidateMode.disabled,
40+
super.onReset,
41+
super.focusNode,
4342
required this.options,
4443
this.activeColor,
4544
this.checkColor,
@@ -61,18 +60,6 @@ class FormBuilderCheckboxGroup<T> extends FormBuilderField<List<T>> {
6160
this.orientation = OptionsOrientation.wrap,
6261
this.shouldRequestFocus = false,
6362
}) : super(
64-
key: key,
65-
initialValue: initialValue,
66-
name: name,
67-
validator: validator,
68-
valueTransformer: valueTransformer,
69-
onChanged: onChanged,
70-
autovalidateMode: autovalidateMode,
71-
onSaved: onSaved,
72-
enabled: enabled,
73-
onReset: onReset,
74-
decoration: decoration,
75-
focusNode: focusNode,
7663
builder: (FormFieldState<List<T>?> field) {
7764
final state = field as _FormBuilderCheckboxGroupState<T>;
7865

lib/src/fields/form_builder_choice_chips.dart

Lines changed: 59 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -256,16 +256,16 @@ class FormBuilderChoiceChip<T> extends FormBuilderField<T> {
256256

257257
/// Creates a list of `Chip`s that acts like radio buttons
258258
FormBuilderChoiceChip({
259-
AutovalidateMode autovalidateMode = AutovalidateMode.disabled,
260-
bool enabled = true,
261-
FocusNode? focusNode,
262-
FormFieldSetter<T>? onSaved,
263-
FormFieldValidator<T>? validator,
264-
InputDecoration decoration = const InputDecoration(),
265-
Key? key,
266-
required String name, //From Super
259+
super.autovalidateMode = AutovalidateMode.disabled,
260+
super.enabled,
261+
super.focusNode,
262+
super.onSaved,
263+
super.validator,
264+
super.decoration,
265+
super.key,
266+
required super.name,
267267
required this.options,
268-
T? initialValue,
268+
super.initialValue,
269269
this.alignment = WrapAlignment.start,
270270
this.avatarBorder = const CircleBorder(),
271271
this.backgroundColor,
@@ -289,70 +289,57 @@ class FormBuilderChoiceChip<T> extends FormBuilderField<T> {
289289
this.textDirection,
290290
this.verticalDirection = VerticalDirection.down,
291291
this.visualDensity,
292-
ValueChanged<T?>? onChanged,
293-
ValueTransformer<T?>? valueTransformer,
294-
VoidCallback? onReset,
295-
}) : super(
296-
key: key,
297-
initialValue: initialValue,
298-
name: name,
299-
validator: validator,
300-
valueTransformer: valueTransformer,
301-
onChanged: onChanged,
302-
autovalidateMode: autovalidateMode,
303-
onSaved: onSaved,
304-
enabled: enabled,
305-
onReset: onReset,
306-
decoration: decoration,
307-
focusNode: focusNode,
308-
builder: (FormFieldState<T?> field) {
309-
final state = field as _FormBuilderChoiceChipState<T>;
292+
super.onChanged,
293+
super.valueTransformer,
294+
super.onReset,
295+
}) : super(builder: (FormFieldState<T?> field) {
296+
final state = field as _FormBuilderChoiceChipState<T>;
310297

311-
return InputDecorator(
312-
decoration: state.decoration,
313-
child: Wrap(
314-
direction: direction,
315-
alignment: alignment,
316-
crossAxisAlignment: crossAxisAlignment,
317-
runAlignment: runAlignment,
318-
runSpacing: runSpacing,
319-
spacing: spacing,
320-
textDirection: textDirection,
321-
verticalDirection: verticalDirection,
322-
children: <Widget>[
323-
for (FormBuilderChipOption<T> option in options)
324-
ChoiceChip(
325-
label: option,
326-
shape: shape,
327-
selected: field.value == option.value,
328-
onSelected: state.enabled
329-
? (selected) {
330-
final choice = selected ? option.value : null;
331-
if (shouldRequestFocus) {
332-
state.requestFocus();
333-
}
334-
state.didChange(choice);
335-
}
336-
: null,
337-
avatar: option.avatar,
338-
selectedColor: selectedColor,
339-
disabledColor: disabledColor,
340-
backgroundColor: backgroundColor,
341-
shadowColor: shadowColor,
342-
selectedShadowColor: selectedShadowColor,
343-
elevation: elevation,
344-
pressElevation: pressElevation,
345-
materialTapTargetSize: materialTapTargetSize,
346-
labelStyle: labelStyle,
347-
labelPadding: labelPadding,
348-
padding: padding,
349-
visualDensity: visualDensity,
350-
avatarBorder: avatarBorder,
351-
),
352-
],
353-
),
354-
);
355-
});
298+
return InputDecorator(
299+
decoration: state.decoration,
300+
child: Wrap(
301+
direction: direction,
302+
alignment: alignment,
303+
crossAxisAlignment: crossAxisAlignment,
304+
runAlignment: runAlignment,
305+
runSpacing: runSpacing,
306+
spacing: spacing,
307+
textDirection: textDirection,
308+
verticalDirection: verticalDirection,
309+
children: <Widget>[
310+
for (FormBuilderChipOption<T> option in options)
311+
ChoiceChip(
312+
label: option,
313+
shape: shape,
314+
selected: field.value == option.value,
315+
onSelected: state.enabled
316+
? (selected) {
317+
final choice = selected ? option.value : null;
318+
if (shouldRequestFocus) {
319+
state.requestFocus();
320+
}
321+
state.didChange(choice);
322+
}
323+
: null,
324+
avatar: option.avatar,
325+
selectedColor: selectedColor,
326+
disabledColor: disabledColor,
327+
backgroundColor: backgroundColor,
328+
shadowColor: shadowColor,
329+
selectedShadowColor: selectedShadowColor,
330+
elevation: elevation,
331+
pressElevation: pressElevation,
332+
materialTapTargetSize: materialTapTargetSize,
333+
labelStyle: labelStyle,
334+
labelPadding: labelPadding,
335+
padding: padding,
336+
visualDensity: visualDensity,
337+
avatarBorder: avatarBorder,
338+
),
339+
],
340+
),
341+
);
342+
});
356343

357344
@override
358345
FormBuilderFieldState<FormBuilderChoiceChip<T>, T> createState() =>

lib/src/fields/form_builder_date_range_picker.dart

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -64,19 +64,18 @@ class FormBuilderDateRangePicker extends FormBuilderField<DateTimeRange> {
6464

6565
/// Creates field for selecting a range of dates
6666
FormBuilderDateRangePicker({
67-
Key? key,
68-
//From Super
69-
required String name,
70-
FormFieldValidator<DateTimeRange>? validator,
71-
DateTimeRange? initialValue,
72-
InputDecoration decoration = const InputDecoration(),
73-
ValueChanged<DateTimeRange?>? onChanged,
74-
ValueTransformer<DateTimeRange?>? valueTransformer,
75-
bool enabled = true,
76-
FormFieldSetter<DateTimeRange>? onSaved,
77-
AutovalidateMode autovalidateMode = AutovalidateMode.disabled,
78-
VoidCallback? onReset,
79-
FocusNode? focusNode,
67+
super.key,
68+
required super.name,
69+
super.validator,
70+
super.initialValue,
71+
super.decoration,
72+
super.onChanged,
73+
super.valueTransformer,
74+
super.enabled,
75+
super.onSaved,
76+
super.autovalidateMode = AutovalidateMode.disabled,
77+
super.onReset,
78+
super.focusNode,
8079
required this.firstDate,
8180
required this.lastDate,
8281
this.format,
@@ -129,18 +128,6 @@ class FormBuilderDateRangePicker extends FormBuilderField<DateTimeRange> {
129128
this.allowClear = false,
130129
this.clearIcon,
131130
}) : super(
132-
key: key,
133-
initialValue: initialValue,
134-
name: name,
135-
validator: validator,
136-
valueTransformer: valueTransformer,
137-
onChanged: onChanged,
138-
autovalidateMode: autovalidateMode,
139-
onSaved: onSaved,
140-
enabled: enabled,
141-
onReset: onReset,
142-
decoration: decoration,
143-
focusNode: focusNode,
144131
builder: (FormFieldState<DateTimeRange?> field) {
145132
final state = field as _FormBuilderDateRangePickerState;
146133

lib/src/fields/form_builder_date_time_picker.dart

Lines changed: 12 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -127,19 +127,18 @@ class FormBuilderDateTimePicker extends FormBuilderField<DateTime> {
127127

128128
/// Creates field for `Date`, `Time` and `DateTime` input
129129
FormBuilderDateTimePicker({
130-
Key? key,
131-
//From Super
132-
required String name,
133-
FormFieldValidator<DateTime>? validator,
134-
DateTime? initialValue,
135-
InputDecoration decoration = const InputDecoration(),
136-
ValueChanged<DateTime?>? onChanged,
137-
ValueTransformer<DateTime?>? valueTransformer,
138-
bool enabled = true,
139-
FormFieldSetter<DateTime>? onSaved,
140-
AutovalidateMode autovalidateMode = AutovalidateMode.disabled,
141-
VoidCallback? onReset,
142-
FocusNode? focusNode,
130+
super.key,
131+
required super.name,
132+
super.validator,
133+
super.initialValue,
134+
super.decoration,
135+
super.onChanged,
136+
super.valueTransformer,
137+
super.enabled,
138+
super.onSaved,
139+
super.autovalidateMode = AutovalidateMode.disabled,
140+
super.onReset,
141+
super.focusNode,
143142
this.inputType = InputType.both,
144143
this.scrollPadding = const EdgeInsets.all(20.0),
145144
this.cursorWidth = 2.0,
@@ -194,18 +193,6 @@ class FormBuilderDateTimePicker extends FormBuilderField<DateTime> {
194193
this.anchorPoint,
195194
this.onEntryModeChanged,
196195
}) : super(
197-
key: key,
198-
initialValue: initialValue,
199-
name: name,
200-
validator: validator,
201-
valueTransformer: valueTransformer,
202-
onChanged: onChanged,
203-
autovalidateMode: autovalidateMode,
204-
onSaved: onSaved,
205-
enabled: enabled,
206-
onReset: onReset,
207-
decoration: decoration,
208-
focusNode: focusNode,
209196
builder: (FormFieldState<DateTime?> field) {
210197
final state = field as _FormBuilderDateTimePickerState;
211198

0 commit comments

Comments
 (0)