Skip to content

Commit ddfb895

Browse files
committed
Avoid creating FocusNodes to remove focus from field. Use unfocus() instead.
1 parent 9267fcc commit ddfb895

File tree

2 files changed

+4
-11
lines changed

2 files changed

+4
-11
lines changed

lib/src/fields/form_builder_color_picker.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -211,8 +211,7 @@ class _FormBuilderColorPickerFieldState
211211

212212
Future<void> _handleFocus() async {
213213
if (effectiveFocusNode.hasFocus && enabled) {
214-
await Future.microtask(
215-
() => FocusScope.of(context).requestFocus(FocusNode()));
214+
effectiveFocusNode?.unfocus();
216215
final selected = await showDialog<bool>(
217216
context: context,
218217
builder: (BuildContext context) {

lib/src/fields/form_builder_date_range_picker.dart

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,7 @@ class FormBuilderDateRangePicker extends FormBuilderField<List<DateTime>> {
133133
return TextField(
134134
enabled: state.enabled,
135135
style: style,
136-
focusNode: state.enabled
137-
? state.effectiveFocusNode
138-
: AlwaysDisabledFocusNode(),
136+
focusNode: state.effectiveFocusNode,
139137
decoration: state.decoration(),
140138
// initialValue: "${_initialValue ?? ''}",
141139
maxLines: maxLines,
@@ -207,8 +205,8 @@ class FormBuilderDateRangePickerState
207205
}
208206

209207
Future<void> _handleFocus() async {
210-
if (effectiveFocusNode.hasFocus) {
211-
_hideKeyboard();
208+
effectiveFocusNode?.unfocus();
209+
if (effectiveFocusNode.hasFocus && enabled) {
212210
final initialFirstDate = value?.isEmpty ?? true
213211
? (widget.initialFirstDate ?? DateTime.now())
214212
: value[0];
@@ -245,10 +243,6 @@ class FormBuilderDateRangePickerState
245243
return '${format(value[0])} - ${format(value[1])}';
246244
}
247245

248-
void _hideKeyboard() {
249-
Future.microtask(() => FocusScope.of(context).requestFocus(FocusNode()));
250-
}
251-
252246
String format(DateTime date) => FormBuilderDateRangePicker.tryFormat(
253247
date, widget.format ?? intl.DateFormat.yMd());
254248

0 commit comments

Comments
 (0)