From 47b179dc4dcce75c39805430573299bff6504089 Mon Sep 17 00:00:00 2001 From: Freek van de Ven Date: Wed, 24 Jul 2024 15:14:17 +0200 Subject: [PATCH] fix: remove keyboard focus when opening dialogs for time selection --- .../lib/src/ui/widgets/input_fields.dart | 1 + .../lib/src/ui/widgets/pause_selection.dart | 20 ++++++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/packages/flutter_availability/lib/src/ui/widgets/input_fields.dart b/packages/flutter_availability/lib/src/ui/widgets/input_fields.dart index a1ee320..7ce7206 100644 --- a/packages/flutter_availability/lib/src/ui/widgets/input_fields.dart +++ b/packages/flutter_availability/lib/src/ui/widgets/input_fields.dart @@ -24,6 +24,7 @@ class TimeInputField extends StatelessWidget { var translations = options.translations; Future onFieldtap() async { + FocusManager.instance.primaryFocus?.unfocus(); var initialTime = initialValue ?? TimeOfDay.now(); var time = await (options.timePickerBuilder?.call(context, initialTime) ?? showTimePicker( diff --git a/packages/flutter_availability/lib/src/ui/widgets/pause_selection.dart b/packages/flutter_availability/lib/src/ui/widgets/pause_selection.dart index b41c2aa..692ed0a 100644 --- a/packages/flutter_availability/lib/src/ui/widgets/pause_selection.dart +++ b/packages/flutter_availability/lib/src/ui/widgets/pause_selection.dart @@ -35,15 +35,17 @@ class PauseSelection extends StatelessWidget { Future openBreakDialog( BreakViewModel? initialBreak, - ) async => - AvailabilityBreakSelectionDialog.show( - context, - initialBreak: initialBreak, - userId: availabilityScope.userId, - options: options, - service: availabilityScope.service, - editingTemplate: editingTemplate, - ); + ) async { + FocusManager.instance.primaryFocus?.unfocus(); + return AvailabilityBreakSelectionDialog.show( + context, + initialBreak: initialBreak, + userId: availabilityScope.userId, + options: options, + service: availabilityScope.service, + editingTemplate: editingTemplate, + ); + } Future onClickAddBreak() async { var newBreak = await openBreakDialog(null);