getSelectable method
Implementation
bool getSelectable({
required bool isAgeLimit,
required bool checkYear,
required DateTime date,
required int index,
required int ageLimit,
required int februaryRange,
required EDatePickerType datePickerType,
}) {
final DateTime nowDate = DateTime.now();
bool? selectable;
if (isAgeLimit) {
if (datePickerType == EDatePickerType.day) {
if (checkYear &&
(((nowDate.month <= date.month && index + 1 > nowDate.day)) ||
date.month > nowDate.month)) {
selectable = false;
} else {
selectable = true;
}
} else if (datePickerType == EDatePickerType.month) {
if (checkYear &&
(((index + 1 > nowDate.month) && (nowDate.day >= date.day)) ||
date.day > nowDate.day)) {
selectable = false;
if (date.day > nowDate.day && index + 1 < nowDate.month) {
selectable = true;
}
if (index == 1 && date.day > februaryRange) {
selectable = false;
}
} else {
selectable = true;
if (index == 1 && date.day > februaryRange) {
selectable = false;
}
}
} else if (datePickerType == EDatePickerType.year) {
if ((((date.month > nowDate.month) ||
(date.month == nowDate.month && date.day > nowDate.day)) &&
(index + nowDate.year - 106) > nowDate.year - ageLimit)) {
selectable = false;
} else {
selectable = true;
}
}
} else if (datePickerType == EDatePickerType.month) {
if (index == 1 && date.day > februaryRange) {
selectable = false;
} else {
selectable = true;
}
}
return selectable ?? true;
}