DatepickerPreset.thisWeek constructor

DatepickerPreset.thisWeek(
  1. Clock clock, {
  2. int? startWeekday,
  3. List<int>? validStartWeekdays,
})

Create a DatepickerPreset for selecting "This week".

startWeekday is the 1-based first day of the week: e.g. DateTime.monday (which equals 1) for Monday, DateTime.tuesday for Tuesday, etc. It defaults to the first day of the week specified in the current locale.

validStartWeekdays is a list of all starting weekdays which will be added as alternatives.

Implementation

factory DatepickerPreset.thisWeek(Clock clock,
    {int? startWeekday, List<int>? validStartWeekdays}) {
  startWeekday ??= _defaultStartWeekday;
  validStartWeekdays =
      _initValidStartWeekdays(startWeekday, validStartWeekdays);

  late DatepickerPreset result;
  List<DatepickerPreset> alternatives = [];
  for (var startDay in validStartWeekdays) {
    var startDayName = _weekdayName(startDay);
    var preset = DatepickerPreset(_thisWeekTitle(startDayName),
        WeekRange.weeksAgo(clock, 0, startWeekday: startDay),
        shortTitle: _thisWeekShortTitle(startDayName),
        alternatives: alternatives);
    alternatives.add(preset);
    if (startDay == startWeekday) result = preset;
  }
  return result;
}