offSubscriber method

  1. @override
void offSubscriber(
  1. Object subscriber
)
override

Removes all events registered by a specific subscriber.

Removes all listeners that were registered with the specified subscriber object. This is useful for cleanup when a component is destroyed.

subscriber - The subscriber object whose events should be removed

Implementation

@override
void offSubscriber(Object subscriber) {
  final events = _subscriberEvents[subscriber];
  if (events == null) return;

  for (final event in events) {
    _listeners[event]?.removeWhere(
      (reg) => _subscriberEvents[subscriber]?.contains(event) ?? false,
    );
    if (_listeners[event]?.isEmpty ?? false) {
      _listeners.remove(event);
    }
  }

  _subscriberEvents.remove(subscriber);
}