unwatch method

  1. @Deprecated('Use implicit signal tracking in SignalWidget/SignalStatefulWidget, or localized builders like SignalBuilder/Watch instead.')
void unwatch(
  1. BuildContext context
)

Stop subscriptions to updates on a signal for watchers.

Implementation

@Deprecated(
  'Use implicit signal tracking in SignalWidget/SignalStatefulWidget, or localized builders like SignalBuilder/Watch instead.',
)
void unwatch(BuildContext context) {
  if (context is StatefulElement) {
    final state = context.state;
    if (state is SignalsMixin) {
      state.unwatchSignal(this);
      return;
    }
  }
  if (context is Element) {
    final subs = _elementSubscriptions[context];
    if (subs != null) {
      final matchIndex = subs.indexWhere((s) => s.signalId == globalId);
      if (matchIndex != -1) {
        final sub = subs.removeAt(matchIndex);
        _finalizer.detach(sub.dispose);
        sub.dispose();
      }
    }
  }
}