dateRangePicker static method

void dateRangePicker({
  1. required BuildContext context,
  2. required dynamic onSelected(
    1. String fromDate,
    2. String toDate
    ),
  3. String? fromDate,
  4. String? toDate,
  5. String? minDate,
  6. String? maxDate,
  7. String format = Format.fyyyyMMdd,
})

pick date range with customization

Implementation

static void dateRangePicker({
  required BuildContext context,
  required Function(String fromDate, String toDate) onSelected,
  String? fromDate,
  String? toDate,
  String? minDate,
  String? maxDate,
  String format = Format.fyyyyMMdd,
}) {
  String startDate = _isNullOrEmpty(fromDate)
      ? getCurrentDate()
      : formatDateTime(
          dateTime: fromDate!,
          inFormat: format,
          outFormat: format,
        );
  String endDate = _isNullOrEmpty(toDate)
      ? getCurrentDate()
      : formatDateTime(
          dateTime: toDate!,
          inFormat: format,
          outFormat: format,
        );
  if (!validDateTimeRange(
    fromDateTime: startDate,
    toDateTime: endDate,
    format: format,
  )) {
    startDate = getCurrentDate();
    endDate = getCurrentDate();
  }
  showDateRangePicker(
    context: context,
    firstDate: _isNullOrEmpty(minDate)
        ? DateTime(1950)
        : stringToDateTime(date: minDate!),
    lastDate: _isNullOrEmpty(maxDate)
        ? DateTime(3000)
        : stringToDateTime(date: maxDate!),
    initialDateRange: DateTimeRange(
      start: stringToDateTime(date: startDate),
      end: stringToDateTime(date: endDate),
    ),
  ).then((value) {
    String fDate = "";
    String tDate = "";
    if (value != null) {
      fDate = dateTimeToString(date: value.start, format: format);
      tDate = dateTimeToString(date: value.end, format: format);
    } else {
      fDate = _isNullOrEmpty(fromDate)
          ? ""
          : formatDateTime(
              dateTime: fromDate!,
              inFormat: format,
              outFormat: format,
            );
      tDate = _isNullOrEmpty(toDate)
          ? ""
          : formatDateTime(
              dateTime: toDate!,
              inFormat: format,
              outFormat: format,
            );
    }
    onSelected(fDate, tDate);
  });
}