broadcast method
Implementation
Future<void> broadcast(NyEvent event, [Map? params]) async {
final Type eventType = event.runtimeType;
if (_subscriptions.containsKey(eventType)) {
final listeners = List<NyListener>.from(_subscriptions[eventType]!);
for (var listener in listeners) {
// Skip if listener was already removed (could happen if returning false in a callback)
if (!_subscriptions.containsKey(eventType) ||
!_subscriptions[eventType]!.contains(listener)) {
continue;
}
listener.setEvent(event);
dynamic result = await listener.handle(params);
// Check if we should stop propagation
if (result != null && result == false) {
break;
}
}
}
}