Skip to content

Commit 86fbf73

Browse files
committed
Fix time picker dialog locale
1 parent 76be651 commit 86fbf73

File tree

1 file changed

+55
-1
lines changed

1 file changed

+55
-1
lines changed

lib/src/fields/form_builder_date_time_picker.dart

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -342,7 +342,7 @@ class _FormBuilderDateTimePickerState
342342

343343
Future<TimeOfDay?> _showTimePicker(
344344
BuildContext context, DateTime? currentValue) async {
345-
final timePickerResult = await showTimePicker(
345+
final timePickerResult = await showFormBuilderTimePicker(
346346
context: context,
347347
initialTime: currentValue != null
348348
? TimeOfDay.fromDateTime(currentValue)
@@ -351,6 +351,7 @@ class _FormBuilderDateTimePickerState
351351
useRootNavigator: widget.useRootNavigator,
352352
routeSettings: widget.routeSettings,
353353
initialEntryMode: widget.timePickerInitialEntryMode,
354+
locale: widget.locale,
354355
helpText: widget.helpText,
355356
confirmText: widget.confirmText,
356357
cancelText: widget.cancelText,
@@ -376,3 +377,56 @@ class _FormBuilderDateTimePickerState
376377
(value == null) ? '' : _dateFormat.format(value);
377378
}
378379
}
380+
381+
Future<TimeOfDay?> showFormBuilderTimePicker({
382+
required BuildContext context,
383+
required TimeOfDay initialTime,
384+
TransitionBuilder? builder,
385+
bool useRootNavigator = true,
386+
TimePickerEntryMode initialEntryMode = TimePickerEntryMode.dial,
387+
Locale? locale,
388+
String? cancelText,
389+
String? confirmText,
390+
String? helpText,
391+
String? errorInvalidText,
392+
String? hourLabelText,
393+
String? minuteLabelText,
394+
RouteSettings? routeSettings,
395+
EntryModeChangeCallback? onEntryModeChanged,
396+
Offset? anchorPoint,
397+
}) async {
398+
assert(context != null);
399+
assert(initialTime != null);
400+
assert(useRootNavigator != null);
401+
assert(initialEntryMode != null);
402+
assert(debugCheckHasMaterialLocalizations(context));
403+
404+
Widget dialog = TimePickerDialog(
405+
initialTime: initialTime,
406+
initialEntryMode: initialEntryMode,
407+
cancelText: cancelText,
408+
confirmText: confirmText,
409+
helpText: helpText,
410+
errorInvalidText: errorInvalidText,
411+
hourLabelText: hourLabelText,
412+
minuteLabelText: minuteLabelText,
413+
onEntryModeChanged: onEntryModeChanged,
414+
);
415+
if (locale != null) {
416+
dialog = Localizations.override(
417+
context: context,
418+
locale: locale,
419+
child: dialog,
420+
);
421+
}
422+
423+
return showDialog<TimeOfDay>(
424+
context: context,
425+
useRootNavigator: useRootNavigator,
426+
builder: (BuildContext context) {
427+
return builder == null ? dialog : builder(context, dialog);
428+
},
429+
routeSettings: routeSettings,
430+
anchorPoint: anchorPoint,
431+
);
432+
}

0 commit comments

Comments
 (0)