JCalendarDatePicker constructor
- Key? key,
- required JHijri initialDate,
- required JHijri firstDate,
- required JHijri lastDate,
- JHijri? currentDate,
- required ValueChanged<
HijriDate> onDateChanged, - ValueChanged<
HijriDate> ? onDisplayedMonthChanged, - DatePickerMode initialCalendarMode = DatePickerMode.day,
- JSelectableDayPredicate? selectableDayPredicate,
- String localeCode = 'en',
Creates a calendar date picker.
It will display a grid of days for the initialDate's month. The day
indicated by initialDate will be selected.
The optional onDisplayedMonthChanged callback can be used to track
the currently displayed month.
The user interface provides a way to change the year of the month being
displayed. By default it will show the day grid, but this can be changed
to start in the year selection interface with initialCalendarMode set
to DatePickerMode.year.
The initialDate, firstDate, lastDate, onDateChanged, and
initialCalendarMode must be non-null.
lastDate must be after or equal to firstDate.
initialDate must be between firstDate and lastDate or equal to
one of them.
currentDate represents the current day (i.e. today). This
date will be highlighted in the day grid. If null, the date of
DateTime.now() will be used.
If selectableDayPredicate is non-null, it must return true for the
initialDate.
Implementation
JCalendarDatePicker({
super.key,
required JHijri initialDate,
required JHijri firstDate,
required JHijri lastDate,
JHijri? currentDate,
required this.onDateChanged,
this.onDisplayedMonthChanged,
this.initialCalendarMode = DatePickerMode.day,
this.selectableDayPredicate,
this.localeCode = 'en',
}) : initialDate = initialDate.hijri,
firstDate = firstDate.hijri,
lastDate = lastDate.hijri,
currentDate = currentDate?.hijri ?? HijriDate.now() {
assert(
!this.lastDate.dateTime.isBefore(this.firstDate.dateTime),
'lastDate ${this.lastDate} must be on or after firstDate ${this.firstDate}.',
);
assert(
!this.initialDate.dateTime.isBefore(this.firstDate.dateTime),
'initialDate ${this.initialDate} must be on or after firstDate ${this.firstDate}.',
);
assert(
!this.initialDate.dateTime.isAfter(this.lastDate.dateTime),
'initialDate ${this.initialDate} must be on or before lastDate ${this.lastDate}.',
);
assert(
selectableDayPredicate == null ||
selectableDayPredicate!(this.initialDate),
'Provided initialDate ${this.initialDate} must satisfy provided selectableDayPredicate.',
);
}