selectData method

  1. @override
Future<DateTime?> selectData({
  1. required BuildContext context,
  2. required DateTimeEditingController controller,
})
override

Implementation

@override
Future<DateTime?> selectData({
  required BuildContext context,
  required DateTimeEditingController controller,
}) async {
  DateTime? selectedDate = await showDatePicker(
    context: context,
    initialDate: controller.data ?? DateTime.now(),
    firstDate: firstDate ?? DateTime(1900),
    lastDate: lastDate ?? DateTime(2100),
    initialEntryMode: initialDateEntryMode,
    initialDatePickerMode: initialDatePickerMode,
  );

  if (selectedDate == null) {
    return null;
  }

  TimeOfDay initialTime = TimeOfDay.now();

  try {
    initialTime = TimeOfDay.fromDateTime(
      controller.data ?? DateTime.now(),
    );
  } on Exception catch (_) {
    // Do nothing.
  }

  TimeOfDay? selectedTime = await showTimePicker(
    context: context,
    initialTime: initialTime,
    initialEntryMode: initialTimeEntryMode,
  );

  if (selectedTime == null) {
    return null;
  }

  return selectedDate.mergeStart(time: selectedTime);
}