MonthWidget constructor
MonthWidget(
- DateTime month, {
- DateWidgetBuilder? weekDayBuilder,
- WeekWidgetBuilder? weekBuilder,
- DateWidgetBuilder? dateBuilder,
- MonthWidgetStyle? style,
Implementation
MonthWidget(
this.month, {
DateWidgetBuilder? weekDayBuilder,
WeekWidgetBuilder? weekBuilder,
DateWidgetBuilder? dateBuilder,
this.style,
}) : assert(month.debugCheckIsValidTimetableMonth()),
weekDayBuilder =
weekDayBuilder ?? ((context, date) => WeekdayIndicator(date)),
weekBuilder = weekBuilder ??
((context, week) {
final timetableTheme = TimetableTheme.orDefaultOf(context);
return WeekIndicator(
week,
style: (style ?? timetableTheme.monthWidgetStyleProvider(month))
.removeIndividualWeekDecorations
? timetableTheme
.weekIndicatorStyleProvider(week)
.copyWith(decoration: const BoxDecoration())
: null,
alwaysUseNarrowestVariant: true,
);
}),
dateBuilder = dateBuilder ??
((context, date) {
assert(date.debugCheckIsValidTimetableDate());
final timetableTheme = TimetableTheme.orDefaultOf(context);
DateIndicatorStyle? dateStyle;
if (date.firstDayOfMonth != month &&
(style ?? timetableTheme.monthWidgetStyleProvider(month))
.showDatesFromOtherMonthsAsDisabled) {
final original =
timetableTheme.dateIndicatorStyleProvider(date);
dateStyle = original.copyWith(
textStyle: original.textStyle.copyWith(
color: context.theme.colorScheme.background.disabledOnColor,
),
);
}
return DateIndicator(date, style: dateStyle);
});