From 4e11c2de721504fb130a2ad99664a4d83b66eafa Mon Sep 17 00:00:00 2001 From: Prince Date: Thu, 29 Jan 2026 12:09:19 +0530 Subject: [PATCH] Improve date picker flow handling --- .../add_task_dialogue/date_picker_input.dart | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/lib/app/utils/add_task_dialogue/date_picker_input.dart b/lib/app/utils/add_task_dialogue/date_picker_input.dart index fe1d6f13..0a4c2b67 100644 --- a/lib/app/utils/add_task_dialogue/date_picker_input.dart +++ b/lib/app/utils/add_task_dialogue/date_picker_input.dart @@ -106,11 +106,36 @@ class _AddTaskDatePickerInputState extends State { firstDate: DateTime.now(), lastDate: DateTime(2101), ); + + // FIX: Check if date was selected before showing time picker + if (picked == null) { + return; // User canceled date picker, exit early + } + + // Only show time picker if date was selected final TimeOfDay? time = await showTimePicker( context: context, initialTime: TimeOfDay.now(), ); - if (picked == null || time == null) return; + + // If user cancels time picker, still set the date with default time + if (time == null) { + setState(() { + // Set date with end-of-day time (23:59) + _selectedDates[forIndex] = picked.add( + const Duration(hours: 23, minutes: 59), + ); + // Update the controller text + _controllers[forIndex].text = + dateToStringForAddTask(_selectedDates[forIndex]!); + }); + if (widget.onDateChanges != null) { + widget.onDateChanges!(_selectedDates); + } + return; + } + + // Both date and time selected setState(() { _selectedDates[forIndex] = picked.add(Duration(hours: time.hour, minutes: time.minute)); @@ -135,4 +160,4 @@ class _AddTaskDatePickerInputState extends State { } return null; } -} +} \ No newline at end of file