From 521ac1bae04bdd7c42325a28696e2293f15f3d65 Mon Sep 17 00:00:00 2001 From: konrad Date: Sun, 17 Mar 2019 12:59:45 +0100 Subject: [PATCH] Moved the datetimepicker to custom widget --- lib/components/datetimePicker.dart | 36 ++++++++++++++++++++++++++++++ lib/pages/list/task_edit.dart | 18 +++++---------- 2 files changed, 42 insertions(+), 12 deletions(-) create mode 100644 lib/components/datetimePicker.dart diff --git a/lib/components/datetimePicker.dart b/lib/components/datetimePicker.dart new file mode 100644 index 0000000..ff2164c --- /dev/null +++ b/lib/components/datetimePicker.dart @@ -0,0 +1,36 @@ +import 'package:datetime_picker_formfield/datetime_picker_formfield.dart'; +import 'package:flutter/material.dart'; + +import 'package:vikunja_app/theme/constants.dart'; + +class VikunjaDateTimePicker extends StatelessWidget { + final String label; + final Function onSaved; + final DateTime initialValue; + final EdgeInsetsGeometry padding; + + const VikunjaDateTimePicker({ + Key key, + @required this.label, + this.onSaved, + this.initialValue, + this.padding = const EdgeInsets.symmetric(vertical: 10.0), + }) : super(key: key); + + @override + Widget build(BuildContext context) { + return Padding( + padding: padding, + child: DateTimePickerFormField( + dateOnly: false, + editable: false, // Otherwise editing the date is not possible, this setting affects the underlying text field. + initialValue: initialValue == DateTime.fromMillisecondsSinceEpoch(0) ? null : initialValue, + format: vDateFormatLong, + decoration: InputDecoration( + labelText: label, + border: OutlineInputBorder(), + ), + onSaved: onSaved, + )); + } +} diff --git a/lib/pages/list/task_edit.dart b/lib/pages/list/task_edit.dart index cec0c0e..18ed251 100644 --- a/lib/pages/list/task_edit.dart +++ b/lib/pages/list/task_edit.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart'; import 'package:datetime_picker_formfield/datetime_picker_formfield.dart'; import 'package:intl/intl.dart'; +import 'package:vikunja_app/components/datetimePicker.dart'; import 'package:vikunja_app/global.dart'; import 'package:vikunja_app/models/label.dart'; @@ -82,18 +83,11 @@ class _TaskEditPageState extends State { ), ), ), - Padding( - padding: EdgeInsets.symmetric(vertical: 10.0), - child: DateTimePickerFormField( - dateOnly: false, - initialDate: widget.task.dueDate, - format: vDateFormatLong, - decoration: InputDecoration( - labelText: 'Due Date', - border: OutlineInputBorder(), - ), - onSaved: (duedate) => _dueDate = duedate, - )), + VikunjaDateTimePicker( + label: 'Due Date', + initialValue: widget.task.dueDate, + onSaved: (duedate) => _dueDate = duedate, + ), Builder( builder: (context) => Padding( padding: EdgeInsets.symmetric(vertical: 10.0),