Skip to content

Commit be38a25

Browse files
committed
2 parents c27f22c + ae48cb2 commit be38a25

6 files changed

+18
-8
lines changed

lib/src/fields/form_builder_color_picker.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,12 @@ class _FormBuilderColorPickerState extends State<FormBuilderColorPicker> {
134134
_focusNode.addListener(_handleFocus);
135135
}
136136

137+
@override
138+
void dispose() {
139+
_textEditingController.dispose();
140+
super.dispose();
141+
}
142+
137143
@override
138144
Widget build(BuildContext context) {
139145
_readOnly = _formState?.readOnly == true || widget.readOnly;

lib/src/fields/form_builder_date_range_picker.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ class FormBuilderDateRangePickerState
292292
@override
293293
void dispose() {
294294
_formState?.unregisterFieldKey(widget.attribute);
295-
_effectiveController.dispose();
295+
_controller.dispose();
296296
super.dispose();
297297
}
298298
}

lib/src/fields/form_builder_date_time_picker.dart

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,8 +273,11 @@ class _FormBuilderDateTimePickerState extends State<FormBuilderDateTimePicker> {
273273

274274
@override
275275
void dispose() {
276-
super.dispose();
277276
_formState?.unregisterFieldKey(widget.attribute);
277+
if (widget.controller == null) {
278+
_textFieldController.dispose();
279+
}
280+
super.dispose();
278281
}
279282

280283
@override

lib/src/fields/form_builder_phone_field.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ class FormBuilderPhoneField extends StatefulWidget {
124124

125125
class FormBuilderPhoneFieldState extends State<FormBuilderPhoneField> {
126126
bool _readOnly = false;
127-
TextEditingController _effectiveController = TextEditingController();
127+
TextEditingController _effectiveController;
128128
FormBuilderState _formState;
129129
final GlobalKey<FormFieldState> _fieldKey = GlobalKey<FormFieldState>();
130130
String _initialValue;
@@ -147,9 +147,7 @@ class FormBuilderPhoneFieldState extends State<FormBuilderPhoneField> {
147147
((_formState?.initialValue?.containsKey(widget.attribute) ?? false)
148148
? _formState.initialValue[widget.attribute]
149149
: null);
150-
if (widget.controller != null) {
151-
_effectiveController = widget.controller;
152-
}
150+
_effectiveController = widget.controller ?? TextEditingController();
153151
_selectedDialogCountry = CountryPickerUtils.getCountryByIsoCode(
154152
widget.defaultSelectedCountryIsoCode);
155153
_parsePhone();

lib/src/fields/form_builder_text_field.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ class FormBuilderTextField extends StatefulWidget {
112112

113113
class FormBuilderTextFieldState extends State<FormBuilderTextField> {
114114
bool _readOnly = false;
115-
TextEditingController _effectiveController = TextEditingController();
115+
TextEditingController _effectiveController;
116116
FormBuilderState _formState;
117117
final GlobalKey<FormFieldState> _fieldKey = GlobalKey<FormFieldState>();
118118
String _initialValue;
@@ -128,7 +128,7 @@ class FormBuilderTextFieldState extends State<FormBuilderTextField> {
128128
if (widget.controller != null) {
129129
_effectiveController = widget.controller;
130130
} else {
131-
_effectiveController.text = _initialValue ?? '';
131+
_effectiveController = TextEditingController(text: _initialValue ?? '');
132132
}
133133
super.initState();
134134
}

lib/src/fields/form_builder_typeahead.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,9 @@ class _FormBuilderTypeAheadState<T> extends State<FormBuilderTypeAhead<T>> {
197197
@override
198198
void dispose() {
199199
_formState?.unregisterFieldKey(widget.attribute);
200+
if (widget.controller == null) {
201+
_typeAheadController.dispose();
202+
}
200203
super.dispose();
201204
}
202205
}

0 commit comments

Comments
 (0)