Skip to content

Commit f6475ca

Browse files
Merge pull request #1468 from flutter-form-builder-ecosystem/feature/#1368-fix-initial-date-on-date-picker
fix: #1368 remove default value for initial date
2 parents 15e9b3e + 555a013 commit f6475ca

File tree

2 files changed

+29
-3
lines changed

2 files changed

+29
-3
lines changed

lib/src/fields/form_builder_date_time_picker.dart

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ class FormBuilderDateTimePicker extends FormBuilderFieldDecoration<DateTime> {
2323
/// (Sunday, June 3, 2018 at 9:24pm)
2424
final DateFormat? format;
2525

26-
/// The date the calendar opens to when displayed. Defaults to the current date.
26+
/// The date the calendar opens to when displayed. Defaults to null.
2727
///
2828
/// To preset the widget's value, use [initialValue] instead.
2929
final DateTime? initialDate;
@@ -327,7 +327,7 @@ class _FormBuilderDateTimePickerState extends FormBuilderFieldDecorationState<
327327
context: context,
328328
selectableDayPredicate: widget.selectableDayPredicate,
329329
initialDatePickerMode: widget.initialDatePickerMode,
330-
initialDate: currentValue ?? widget.initialDate ?? DateTime.now(),
330+
initialDate: currentValue ?? widget.initialDate,
331331
firstDate: widget.firstDate ?? DateTime(1900),
332332
lastDate: widget.lastDate ?? DateTime(2100),
333333
locale: widget.locale,

test/src/fields/form_builder_date_time_picker_test.dart

+27-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ void main() {
4141
expect(formValue<DateTime>(widgetName),
4242
DateTime(dateNow.year, dateNow.month, testDay, 12));
4343
});
44-
testWidgets('input keyboard type', (WidgetTester tester) async {
44+
testWidgets(
45+
'should change to text field and show keyboard when edit icon is pressed',
46+
(WidgetTester tester) async {
4547
const widgetName = 'fdtp3';
4648
final widgetKey = UniqueKey();
4749
const keyboardType = TextInputType.datetime;
@@ -63,6 +65,30 @@ void main() {
6365
final textField = tester.widget<TextField>(find.byType(TextField).first);
6466
expect(textField.keyboardType, equals(keyboardType));
6567
});
68+
testWidgets('should show a past year when set on lastDate',
69+
(WidgetTester tester) async {
70+
const widgetName = 'fdtp3';
71+
final widgetKey = UniqueKey();
72+
const confirmText = 'OK';
73+
const cancelText = 'CANCEL';
74+
final year = 2006;
75+
76+
final testWidget = FormBuilderDateTimePicker(
77+
key: widgetKey,
78+
name: widgetName,
79+
confirmText: confirmText,
80+
cancelText: cancelText,
81+
initialDate: null,
82+
lastDate: DateTime(year, 12, 31),
83+
);
84+
await tester.pumpWidget(buildTestableFieldWidget(testWidget));
85+
await tester.tap(find.byKey(widgetKey));
86+
await tester.pumpAndSettle();
87+
88+
expect(find.text(confirmText), findsOneWidget);
89+
expect(find.text(cancelText), findsOneWidget);
90+
expect(find.text('December ${year.toString()}'), findsOneWidget);
91+
});
6692
group('initial value -', () {
6793
testWidgets('to FormBuilder', (WidgetTester tester) async {
6894
const widgetName = 'fdtp2';

0 commit comments

Comments
 (0)