diff --git a/lib/helpers/widgets/date_range_picker.dart b/lib/helpers/widgets/date_range_picker.dart index 56b38e6..83982bc 100644 --- a/lib/helpers/widgets/date_range_picker.dart +++ b/lib/helpers/widgets/date_range_picker.dart @@ -31,16 +31,23 @@ class _DateRangePickerWidgetState extends State Future _selectDate(BuildContext context, bool isStartDate) async { final current = isStartDate ? widget.startDate.value ?? DateTime.now() - : widget.endDate.value ?? DateTime.now(); + : widget.endDate.value ?? DateTime.now().add(const Duration(days: 1)); - // Ensure initialDate is within firstDate..lastDate final first = DateTime(2000); - final last = current.isAfter(DateTime.now()) ? current : DateTime.now(); + + // Restrict Start Date: allow today or earlier + // Restrict End Date: cannot be before startDate + final last = isStartDate ? DateTime.now() : DateTime(2100); + final firstDate = isStartDate + ? first + : (widget.startDate.value != null ? widget.startDate.value! : first); final DateTime? picked = await showDatePicker( context: context, - initialDate: current, - firstDate: first, + initialDate: current.isBefore(firstDate) + ? firstDate + : (current.isAfter(last) ? last : current), + firstDate: firstDate, lastDate: last, builder: (context, child) => Theme( data: Theme.of(context).copyWith( @@ -64,11 +71,6 @@ class _DateRangePickerWidgetState extends State } } else { widget.endDate.value = picked; - // Auto-adjust startDate if needed - if (widget.startDate.value != null && - widget.startDate.value!.isAfter(picked)) { - widget.startDate.value = picked; - } } widget.onDateRangeSelected diff --git a/lib/model/service_project/add_service_project_job_bottom_sheet.dart b/lib/model/service_project/add_service_project_job_bottom_sheet.dart index ffb1fcd..081c0b3 100644 --- a/lib/model/service_project/add_service_project_job_bottom_sheet.dart +++ b/lib/model/service_project/add_service_project_job_bottom_sheet.dart @@ -215,9 +215,8 @@ class _AddServiceProjectJobBottomSheetState startLabel: "Start Date", endLabel: "Due Date", onDateRangeSelected: (start, end) { - controller.startDate.value = start ?? DateTime.now(); - controller.dueDate.value = - end ?? DateTime.now().add(const Duration(days: 1)); + controller.startDate.value; + controller.dueDate.value; }, ), MySpacing.height(16),