dateRangePicker static method

dynamic 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 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);
  });
}