Skip to content

Commit

Permalink
Re-introduced DateTimePicker
Browse files Browse the repository at this point in the history
  • Loading branch information
danvick committed Apr 20, 2021
1 parent 047870c commit ef2892d
Show file tree
Hide file tree
Showing 6 changed files with 181 additions and 232 deletions.
4 changes: 4 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,7 @@
## [6.0.0] - 20-Apr-2021
* Re-introduced DateTimePicker field without external dependencies
* Minor fixes

## [6.0.0-nullsafety.1] - 24-Mar-2021
* Static analysis improvements
* Documentation improvements
Expand Down
35 changes: 35 additions & 0 deletions example/lib/sources/complete_form.dart
@@ -1,6 +1,7 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_form_builder/flutter_form_builder.dart';
import 'package:intl/intl.dart';

class CompleteForm extends StatefulWidget {
@override
Expand Down Expand Up @@ -41,6 +42,40 @@ class CompleteFormState extends State<CompleteForm> {
child: Column(
children: <Widget>[
const SizedBox(height: 15),
FormBuilderDateTimePicker(
name: 'date',
initialValue: DateTime.now(),
inputType: InputType.time,
decoration: InputDecoration(
labelText: 'Appointment Time',
suffixIcon: IconButton(
icon: Icon(Icons.close),
onPressed: () {
_formKey.currentState!.fields['date']
?.didChange(null);
}),
),
initialTime: TimeOfDay(hour: 8, minute: 0),
locale: Locale.fromSubtags(languageCode: 'fr'),
),
FormBuilderDateRangePicker(
name: 'date_range',
firstDate: DateTime(1970),
lastDate: DateTime(2030),
format: DateFormat('yyyy-MM-dd'),
onChanged: _onChanged,
decoration: InputDecoration(
labelText: 'Date Range',
helperText: 'Helper text',
hintText: 'Hint text',
suffixIcon: IconButton(
icon: Icon(Icons.close),
onPressed: () {
_formKey.currentState!.fields['date_range']
?.didChange(null);
}),
),
),
FormBuilderSlider(
name: 'slider',
validator: FormBuilderValidators.compose([
Expand Down
47 changes: 29 additions & 18 deletions lib/l10n/messages_de.dart
Expand Up @@ -23,27 +23,38 @@ class MessageLookup extends MessageLookupByLibrary {

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

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

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

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

final messages = _notInlinedMessages(_notInlinedMessages);
static _notInlinedMessages(_) => <String, Function> {
"creditCardErrorText" : MessageLookupByLibrary.simpleMessage("Für dieses Feld ist eine gültige Kreditkartennummer erforderlich."),
"dateStringErrorText" : MessageLookupByLibrary.simpleMessage("Dieses Feld erfordert ein gültiges Datum."),
"emailErrorText" : MessageLookupByLibrary.simpleMessage("Für dieses Feld ist eine gültige E-Mail-Adresse erforderlich."),
"equalErrorText" : m0,
"integerErrorText" : MessageLookupByLibrary.simpleMessage("Der Wert muss eine integer sein."),
"ipErrorText" : MessageLookupByLibrary.simpleMessage("Dieses Feld erfordert eine gültige IP-Adresse."),
"matchErrorText" : MessageLookupByLibrary.simpleMessage("Der Wert stimmt nicht mit dem Muster überein."),
"maxErrorText" : m1,
"maxLengthErrorText" : m2,
"minErrorText" : m3,
"minLengthErrorText" : m4,
"numericErrorText" : MessageLookupByLibrary.simpleMessage("Der Wert muss numerisch sein."),
"requiredErrorText" : MessageLookupByLibrary.simpleMessage("Dieses Feld kann nicht leer sein."),
"urlErrorText" : MessageLookupByLibrary.simpleMessage("Für dieses Feld ist eine gültige URL-Adresse erforderlich.")
};
static _notInlinedMessages(_) => <String, Function>{
"creditCardErrorText": MessageLookupByLibrary.simpleMessage(
"Für dieses Feld ist eine gültige Kreditkartennummer erforderlich."),
"dateStringErrorText": MessageLookupByLibrary.simpleMessage(
"Dieses Feld erfordert ein gültiges Datum."),
"emailErrorText": MessageLookupByLibrary.simpleMessage(
"Für dieses Feld ist eine gültige E-Mail-Adresse erforderlich."),
"equalErrorText": m0,
"integerErrorText": MessageLookupByLibrary.simpleMessage(
"Der Wert muss eine integer sein."),
"ipErrorText": MessageLookupByLibrary.simpleMessage(
"Dieses Feld erfordert eine gültige IP-Adresse."),
"matchErrorText": MessageLookupByLibrary.simpleMessage(
"Der Wert stimmt nicht mit dem Muster überein."),
"maxErrorText": m1,
"maxLengthErrorText": m2,
"minErrorText": m3,
"minLengthErrorText": m4,
"numericErrorText": MessageLookupByLibrary.simpleMessage(
"Der Wert muss numerisch sein."),
"requiredErrorText": MessageLookupByLibrary.simpleMessage(
"Dieses Feld kann nicht leer sein."),
"urlErrorText": MessageLookupByLibrary.simpleMessage(
"Für dieses Feld ist eine gültige URL-Adresse erforderlich.")
};
}
4 changes: 1 addition & 3 deletions lib/src/fields/form_builder_date_range_picker.dart
Expand Up @@ -262,9 +262,7 @@ class FormBuilderDateRangePickerState
date, widget.format ?? intl.DateFormat.yMd());

void _setTextFieldString() {
setState(() {
_effectiveController.text = _valueToText();
});
setState(() => _effectiveController.text = _valueToText());
}

@override
Expand Down

0 comments on commit ef2892d

Please sign in to comment.