dateIsSelectable method

bool dateIsSelectable(
  1. DateTime date
)

Returns whether the date is selectable or not. (i.e. if it is between the minDate and the maxDate)

Implementation

bool dateIsSelectable(DateTime date) {
  for (final DateTime disabledDay in disabledDates) {
    if (areSameDay(disabledDay, date)) {
      return false;
    }
  }

  if (startDate != null && endDate == null) {
    var dateDifference = date.difference(startDate!).inDays;
    if (maximumDateRangeLength != null &&
        dateDifference + 1 > maximumDateRangeLength!) {
      return false;
    }

    if (minimumDateRangeLength != null &&
        dateDifference > 0 &&
        dateDifference + 1 < minimumDateRangeLength!) {
      return false;
    }
  }

  if (minDate != null && date.isBefore(minDate!)) {
    return false;
  }
  if (maxDate != null && date.isAfter(maxDate!)) {
    return false;
  }
  return true;
}