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

FCalendarDayPickerController({
  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),
     );