getUpcomingEvents static method

List<IslamicEvent> getUpcomingEvents({
  1. int monthsAhead = 3,
})

Gets upcoming events in the next few months

Implementation

static List<IslamicEvent> getUpcomingEvents({int monthsAhead = 3}) {
  final currentDate = HijriDate.now();
  final allEvents = IslamicEventsManager.allEvents;
  final upcomingEvents = <IslamicEvent>[];

  for (final event in allEvents) {
    final daysUntil = calculateDaysUntilEvent(currentDate, event);
    // Only include events that are actually upcoming (positive days)
    if (daysUntil > 0 && daysUntil <= monthsAhead * 30) {
      upcomingEvents.add(event);
    }
  }

  // Sort by days until event
  upcomingEvents.sort((a, b) {
    final daysA = calculateDaysUntilEvent(currentDate, a);
    final daysB = calculateDaysUntilEvent(currentDate, b);
    return daysA.compareTo(daysB);
  });

  return upcomingEvents;
}