diff --git a/lib/pages/task_edit_page.dart b/lib/pages/task_edit_page.dart index 5e35db8..50a33e6 100644 --- a/lib/pages/task_edit_page.dart +++ b/lib/pages/task_edit_page.dart @@ -96,56 +96,69 @@ class _TaskEditPageState extends State { minLines: 3, maxLines: 10, ), - TextFormField( - focusNode: dueDateFocusNode, - controller: dueDateController, - onChanged: maybeEnableDueTime, - onFieldSubmitted: (_) { - isDueTimeEnabled - ? dueDateFocusNode.nextFocus() - : categoryFocusNode.requestFocus(); - }, - decoration: InputDecoration( - label: Text('Due Date'), - suffix: IconButton( - onPressed: () async { - final result = await onOpenCalendarPickerPressed(); - if (result != null) { - final dateString = getIsoDateString(result); - dueDateController.text = dateString; - maybeEnableDueTime(dateString); - formKey.currentState?.validate(); - dueTimeFocusNode.requestFocus(); - } - }, - icon: Icon(Icons.calendar_month), + Flex( + direction: Axis.horizontal, + + children: [ + Flexible( + flex: 3, + child: TextFormField( + focusNode: dueDateFocusNode, + controller: dueDateController, + onChanged: maybeEnableDueTime, + onFieldSubmitted: (_) { + isDueTimeEnabled + ? dueDateFocusNode.nextFocus() + : categoryFocusNode.requestFocus(); + }, + decoration: InputDecoration( + label: Text('Due Date'), + suffixIcon: IconButton( + onPressed: () async { + final result = await onOpenCalendarPickerPressed(); + if (result != null) { + final dateString = getIsoDateString(result); + dueDateController.text = dateString; + maybeEnableDueTime(dateString); + formKey.currentState?.validate(); + dueTimeFocusNode.requestFocus(); + } + }, + icon: Icon(Icons.calendar_month), + ), + ), + validator: dateTimeValidator, + keyboardType: TextInputType.datetime, + textInputAction: TextInputAction.next, + ), ), - ), - validator: dateTimeValidator, - keyboardType: TextInputType.datetime, - textInputAction: TextInputAction.next, - ), - TextFormField( - focusNode: dueTimeFocusNode, - onFieldSubmitted: (_) => dueTimeFocusNode.nextFocus(), - controller: dueTimeController, - enabled: isDueTimeEnabled, - decoration: InputDecoration( - label: Text('Due Time'), - suffix: IconButton( - onPressed: () async { - final result = await onOpenTimePickerPressed(); - if (result != null && context.mounted) { - dueTimeController.text = result.format(context); - categoryFocusNode.requestFocus(); - } - }, - icon: Icon(Icons.schedule), + Padding(padding: EdgeInsetsGeometry.only(left: 10)), + Flexible( + flex: 2, + child: TextFormField( + focusNode: dueTimeFocusNode, + onFieldSubmitted: (_) => dueTimeFocusNode.nextFocus(), + controller: dueTimeController, + enabled: isDueTimeEnabled, + decoration: InputDecoration( + label: Text('Due Time'), + suffixIcon: IconButton( + onPressed: () async { + final result = await onOpenTimePickerPressed(); + if (result != null && context.mounted) { + dueTimeController.text = result.format(context); + categoryFocusNode.requestFocus(); + } + }, + icon: Icon(Icons.schedule), + ), + ), + validator: timeValidator, + keyboardType: TextInputType.text, + textInputAction: TextInputAction.next, + ), ), - ), - validator: timeValidator, - keyboardType: TextInputType.text, - textInputAction: TextInputAction.next, + ], ), TextFormField( focusNode: categoryFocusNode, @@ -198,7 +211,9 @@ class _TaskEditPageState extends State { title: titleController.text, description: descriptionController.text, start: null, - due: null, + due: DateTime.tryParse( + '${dueDateController.text} ${dueTimeController.text}'.trim(), + ), isCompleted: false, category: categoryController.text, subtasks: [],