FCalendarYearPickerController constructor

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

Implementation

FCalendarYearPickerController({
  required super.start,
  required super.end,
  required super.selectable,
  required super.initial,
  super.focused,
}) : super(
       columns: _columns,
       focusable: (decade, date) {
         final preferred = DateTime.utc(date.year);
         if (decade.year <= preferred.year && preferred.year < decade.year + 10 && selectable(preferred)) {
           return preferred;
         }

         for (var year = decade; year.year < decade.year + 10; year = year.plus(years: 1)) {
           if (selectable(year)) {
             return year;
           }
         }

         return null;
       },
       step: (date, amount) => date.plus(years: amount),
       from: (date) => (date.year - date.year % 10 - (start.year - start.year % 10)) ~/ 10,
       to: (page) => .utc(start.year - start.year % 10 + page * 10),
     );