eventsToSyncProvider top-level property
final
Implementation
final eventsToSyncProvider = FutureProvider.autoDispose((ref) async {
// fetch all from all spaces
final allEventList = await ref.watch(allEventListProvider(null).future);
final upcomingAndOngoing = allEventList.where((event) {
final eventType = getEventType(event);
return eventType == EventFilters.upcoming ||
eventType == EventFilters.ongoing;
});
final List<EventAndRsvp> toSync = [];
for (final event in upcomingAndOngoing) {
final eventId = event.eventId().toString();
final myRsvpStatus = await ref.watch(myRsvpStatusProvider(eventId).future);
if (myRsvpStatus == RsvpStatusTag.No) {
// we sync all that aren’t denied yet
final event = await ref.watch(
calendarEventProvider(eventId).future,
); // ensure we are listening to updates of the events themselves
toSync.add((event: event, rsvp: myRsvpStatus));
}
}
return toSync;
});