Skip to content

Commit c2f8d08

Browse files
committed
feat: allow the date picker dialog to be closed when date is selected
1 parent 5c694f2 commit c2f8d08

File tree

5 files changed

+3401
-15
lines changed

5 files changed

+3401
-15
lines changed

example/lib/sources/complete_form.dart

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ class _CompleteFormState extends State<CompleteForm> {
6363
),
6464
),
6565
initialTime: const TimeOfDay(hour: 8, minute: 0),
66+
popOnDateSelection: true,
6667
// locale: const Locale.fromSubtags(languageCode: 'fr'),
6768
),
6869
FormBuilderDateRangePicker(

example/pubspec.lock

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ packages:
4545
dependency: transitive
4646
description:
4747
name: fake_async
48-
sha256: "5368f224a74523e8d2e7399ea1638b37aecfca824a3cc4dfdf77bf1fa905ac44"
48+
sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
4949
url: "https://pub.dev"
5050
source: hosted
51-
version: "1.3.3"
51+
version: "1.3.2"
5252
flutter:
5353
dependency: "direct main"
5454
description: flutter
@@ -91,18 +91,18 @@ packages:
9191
dependency: "direct main"
9292
description:
9393
name: intl
94-
sha256: "3df61194eb431efc39c4ceba583b95633a403f46c9fd341e550ce0bfa50e9aa5"
94+
sha256: d6f56758b7d3014a48af9701c085700aac781a92a87a62b1333b46d8879661cf
9595
url: "https://pub.dev"
9696
source: hosted
97-
version: "0.20.2"
97+
version: "0.19.0"
9898
leak_tracker:
9999
dependency: transitive
100100
description:
101101
name: leak_tracker
102-
sha256: "6bb818ecbdffe216e81182c2f0714a2e62b593f4a4f13098713ff1685dfb6ab0"
102+
sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
103103
url: "https://pub.dev"
104104
source: hosted
105-
version: "10.0.9"
105+
version: "10.0.8"
106106
leak_tracker_flutter_testing:
107107
dependency: transitive
108108
description:
@@ -224,10 +224,10 @@ packages:
224224
dependency: transitive
225225
description:
226226
name: vm_service
227-
sha256: ddfa8d30d89985b96407efce8acbdd124701f96741f2d981ca860662f1c0dc02
227+
sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
228228
url: "https://pub.dev"
229229
source: hosted
230-
version: "15.0.0"
230+
version: "14.3.1"
231231
sdks:
232232
dart: ">=3.7.0 <4.0.0"
233233
flutter: ">=3.29.0"

lib/src/fields/form_builder_date_time_picker.dart

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import 'package:flutter/services.dart';
66
import 'package:intl/intl.dart';
77

88
import 'package:flutter_form_builder/flutter_form_builder.dart';
9+
import '../widgets/custom_date_picker.dart' as custom_date_picker;
910

1011
enum InputType { date, time, both }
1112

@@ -122,6 +123,7 @@ class FormBuilderDateTimePicker extends FormBuilderFieldDecoration<DateTime> {
122123
final Offset? anchorPoint;
123124
final EntryModeChangeCallback? onEntryModeChanged;
124125
final bool barrierDismissible;
126+
final bool popOnDateSelection;
125127

126128
/// Creates field for `Date`, `Time` and `DateTime` input
127129
FormBuilderDateTimePicker({
@@ -192,6 +194,7 @@ class FormBuilderDateTimePicker extends FormBuilderFieldDecoration<DateTime> {
192194
this.anchorPoint,
193195
this.onEntryModeChanged,
194196
this.barrierDismissible = true,
197+
this.popOnDateSelection = false,
195198
}) : super(
196199
builder: (FormFieldState<DateTime?> field) {
197200
final state = field as _FormBuilderDateTimePickerState;
@@ -324,7 +327,7 @@ class _FormBuilderDateTimePickerState
324327
}
325328

326329
Future<DateTime?> _showDatePicker(DateTime? currentValue) {
327-
return showDatePicker(
330+
return custom_date_picker.showDatePicker(
328331
context: context,
329332
selectableDayPredicate: widget.selectableDayPredicate,
330333
initialDatePickerMode: widget.initialDatePickerMode,
@@ -348,6 +351,7 @@ class _FormBuilderDateTimePickerState
348351
anchorPoint: widget.anchorPoint,
349352
keyboardType: widget.keyboardType,
350353
barrierDismissible: widget.barrierDismissible,
354+
popOnDateSelection: widget.popOnDateSelection,
351355
);
352356
}
353357

0 commit comments

Comments
 (0)