FCalendarDayPickerController constructor

FCalendarDayPickerController({
  1. required DateTime start,
  2. required DateTime end,
  3. required bool selectable(
    1. DateTime
    ),
  4. required DateTime initial,
  5. DateTime? focused,
})

Implementation

new({required super.start, required super.end, required super.selectable, required super.initial, super.focused})
  : super(
      columns: 7,
      focusable: (month, date) {
        final last = month.lastDayOfMonth;
        if (date.day <= last.day) {
          final preferred = DateTime.utc(month.year, month.month, date.day);
          if (selectable(preferred)) {
            return preferred;
          }
        }

        for (var day = month; !day.isAfter(last); day = day.plus(days: 1)) {
          if (selectable(day)) {
            return day;
          }
        }

        return null;
      },
      step: (date, amount) => date.plus(days: amount),
      from: (date) => (date.year - start.year) * 12 + (date.month - start.month),
      to: (page) => .utc(start.year, start.month + page),
    );