CalendarDateRangePicker constructor

CalendarDateRangePicker({
  1. Key? key,
  2. NepaliDateTime? initialStartDate,
  3. NepaliDateTime? initialEndDate,
  4. required NepaliDateTime firstDate,
  5. required NepaliDateTime lastDate,
  6. NepaliDateTime? currentDate,
  7. required ValueChanged<NepaliDateTime>? onStartDateChanged,
  8. required ValueChanged<NepaliDateTime>? onEndDateChanged,
})

Creates a calendar date range picker.

Implementation

CalendarDateRangePicker({
  super.key,
  NepaliDateTime? initialStartDate,
  NepaliDateTime? initialEndDate,
  required NepaliDateTime firstDate,
  required NepaliDateTime lastDate,
  NepaliDateTime? currentDate,
  required this.onStartDateChanged,
  required this.onEndDateChanged,
})  : initialStartDate =
          initialStartDate != null ? utils.dateOnly(initialStartDate) : null,
      initialEndDate =
          initialEndDate != null ? utils.dateOnly(initialEndDate) : null,
      firstDate = utils.dateOnly(firstDate),
      lastDate = utils.dateOnly(lastDate),
      currentDate = utils.dateOnly(currentDate ?? NepaliDateTime.now()) {
  if (initialStartDate != null &&
      initialEndDate != null &&
      initialStartDate.isAfter(initialEndDate)) {
    final temp = initialStartDate;
    initialStartDate = initialEndDate;
    initialEndDate = temp;
  }

  assert(
      initialStartDate == null ||
          initialEndDate == null ||
          !initialStartDate.isAfter(initialEndDate),
      'initialStartDate must be on or before initialEndDate.');

  assert(!lastDate.isBefore(firstDate),
      'firstDate must be on or before lastDate.');
}