getAvailableWeeks method

List<WeekRange> getAvailableWeeks()

Implementation

List<WeekRange> getAvailableWeeks() {
  if (_selectedYear == null) return [];

  final List<WeekRange> availableWeeks = <WeekRange>[];
  final DateTime firstDayOfYear = DateTime(_selectedYear!, 1, 1);

  // Start from the first week of the year
  DateTime currentWeekStart = DateHelper.getFirstDayOfWeek(firstDayOfYear);

  while (currentWeekStart.year <= _selectedYear!) {
    final WeekRange? weekRange = _createWeekRange(currentWeekStart);
    if (weekRange != null) {
      availableWeeks.add(weekRange);
    }

    currentWeekStart = currentWeekStart.add(const Duration(days: 7));
  }

  return availableWeeks;
}