Skip to content

Commit ef2892d

Browse files
committed
Re-introduced DateTimePicker
1 parent 047870c commit ef2892d

File tree

6 files changed

+181
-232
lines changed

6 files changed

+181
-232
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## [6.0.0] - 20-Apr-2021
2+
* Re-introduced DateTimePicker field without external dependencies
3+
* Minor fixes
4+
15
## [6.0.0-nullsafety.1] - 24-Mar-2021
26
* Static analysis improvements
37
* Documentation improvements

example/lib/sources/complete_form.dart

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import 'package:flutter/cupertino.dart';
22
import 'package:flutter/material.dart';
33
import 'package:flutter_form_builder/flutter_form_builder.dart';
4+
import 'package:intl/intl.dart';
45

56
class CompleteForm extends StatefulWidget {
67
@override
@@ -41,6 +42,40 @@ class CompleteFormState extends State<CompleteForm> {
4142
child: Column(
4243
children: <Widget>[
4344
const SizedBox(height: 15),
45+
FormBuilderDateTimePicker(
46+
name: 'date',
47+
initialValue: DateTime.now(),
48+
inputType: InputType.time,
49+
decoration: InputDecoration(
50+
labelText: 'Appointment Time',
51+
suffixIcon: IconButton(
52+
icon: Icon(Icons.close),
53+
onPressed: () {
54+
_formKey.currentState!.fields['date']
55+
?.didChange(null);
56+
}),
57+
),
58+
initialTime: TimeOfDay(hour: 8, minute: 0),
59+
locale: Locale.fromSubtags(languageCode: 'fr'),
60+
),
61+
FormBuilderDateRangePicker(
62+
name: 'date_range',
63+
firstDate: DateTime(1970),
64+
lastDate: DateTime(2030),
65+
format: DateFormat('yyyy-MM-dd'),
66+
onChanged: _onChanged,
67+
decoration: InputDecoration(
68+
labelText: 'Date Range',
69+
helperText: 'Helper text',
70+
hintText: 'Hint text',
71+
suffixIcon: IconButton(
72+
icon: Icon(Icons.close),
73+
onPressed: () {
74+
_formKey.currentState!.fields['date_range']
75+
?.didChange(null);
76+
}),
77+
),
78+
),
4479
FormBuilderSlider(
4580
name: 'slider',
4681
validator: FormBuilderValidators.compose([

lib/l10n/messages_de.dart

Lines changed: 29 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -23,27 +23,38 @@ class MessageLookup extends MessageLookupByLibrary {
2323

2424
static m1(max) => "Der Wert muss kleiner als oder gleich ${max} sein.";
2525

26-
static m2(maxLength) => "Der Wert muss eine Länge kleiner als oder gleich ${maxLength} haben.";
26+
static m2(maxLength) =>
27+
"Der Wert muss eine Länge kleiner als oder gleich ${maxLength} haben.";
2728

2829
static m3(min) => "Der Wert muss größer als oder gleich ${min} sein.";
2930

30-
static m4(minLength) => "Der Wert muss eine Länge größer als oder gleich ${minLength} haben.";
31+
static m4(minLength) =>
32+
"Der Wert muss eine Länge größer als oder gleich ${minLength} haben.";
3133

3234
final messages = _notInlinedMessages(_notInlinedMessages);
33-
static _notInlinedMessages(_) => <String, Function> {
34-
"creditCardErrorText" : MessageLookupByLibrary.simpleMessage("Für dieses Feld ist eine gültige Kreditkartennummer erforderlich."),
35-
"dateStringErrorText" : MessageLookupByLibrary.simpleMessage("Dieses Feld erfordert ein gültiges Datum."),
36-
"emailErrorText" : MessageLookupByLibrary.simpleMessage("Für dieses Feld ist eine gültige E-Mail-Adresse erforderlich."),
37-
"equalErrorText" : m0,
38-
"integerErrorText" : MessageLookupByLibrary.simpleMessage("Der Wert muss eine integer sein."),
39-
"ipErrorText" : MessageLookupByLibrary.simpleMessage("Dieses Feld erfordert eine gültige IP-Adresse."),
40-
"matchErrorText" : MessageLookupByLibrary.simpleMessage("Der Wert stimmt nicht mit dem Muster überein."),
41-
"maxErrorText" : m1,
42-
"maxLengthErrorText" : m2,
43-
"minErrorText" : m3,
44-
"minLengthErrorText" : m4,
45-
"numericErrorText" : MessageLookupByLibrary.simpleMessage("Der Wert muss numerisch sein."),
46-
"requiredErrorText" : MessageLookupByLibrary.simpleMessage("Dieses Feld kann nicht leer sein."),
47-
"urlErrorText" : MessageLookupByLibrary.simpleMessage("Für dieses Feld ist eine gültige URL-Adresse erforderlich.")
48-
};
35+
static _notInlinedMessages(_) => <String, Function>{
36+
"creditCardErrorText": MessageLookupByLibrary.simpleMessage(
37+
"Für dieses Feld ist eine gültige Kreditkartennummer erforderlich."),
38+
"dateStringErrorText": MessageLookupByLibrary.simpleMessage(
39+
"Dieses Feld erfordert ein gültiges Datum."),
40+
"emailErrorText": MessageLookupByLibrary.simpleMessage(
41+
"Für dieses Feld ist eine gültige E-Mail-Adresse erforderlich."),
42+
"equalErrorText": m0,
43+
"integerErrorText": MessageLookupByLibrary.simpleMessage(
44+
"Der Wert muss eine integer sein."),
45+
"ipErrorText": MessageLookupByLibrary.simpleMessage(
46+
"Dieses Feld erfordert eine gültige IP-Adresse."),
47+
"matchErrorText": MessageLookupByLibrary.simpleMessage(
48+
"Der Wert stimmt nicht mit dem Muster überein."),
49+
"maxErrorText": m1,
50+
"maxLengthErrorText": m2,
51+
"minErrorText": m3,
52+
"minLengthErrorText": m4,
53+
"numericErrorText": MessageLookupByLibrary.simpleMessage(
54+
"Der Wert muss numerisch sein."),
55+
"requiredErrorText": MessageLookupByLibrary.simpleMessage(
56+
"Dieses Feld kann nicht leer sein."),
57+
"urlErrorText": MessageLookupByLibrary.simpleMessage(
58+
"Für dieses Feld ist eine gültige URL-Adresse erforderlich.")
59+
};
4960
}

lib/src/fields/form_builder_date_range_picker.dart

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -262,9 +262,7 @@ class FormBuilderDateRangePickerState
262262
date, widget.format ?? intl.DateFormat.yMd());
263263

264264
void _setTextFieldString() {
265-
setState(() {
266-
_effectiveController.text = _valueToText();
267-
});
265+
setState(() => _effectiveController.text = _valueToText());
268266
}
269267

270268
@override

0 commit comments

Comments
 (0)