getUpcomingEventsWithDetails static method
Gets upcoming events with accurate calculations and details
Implementation
static List<Map<String, dynamic>> getUpcomingEventsWithDetails(
{int monthsAhead = 6}) {
final currentDate = HijriDate.now();
final allEvents = IslamicEventsManager.allEvents;
final upcomingEvents = <Map<String, dynamic>>[];
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': event,
'daysUntil': daysUntil,
'arabicTitle': event.titleArabic,
'englishTitle': event.titleEnglish,
});
}
}
// Sort by days until event
upcomingEvents.sort((a, b) => a['daysUntil'].compareTo(b['daysUntil']));
return upcomingEvents;
}