ofListenable<T> static method

ControlObservable<T?> ofListenable<T>(
  1. Listenable listenable
)

Implementation

static ControlObservable<T?> ofListenable<T>(Listenable listenable) {
  final observable = _ClientObservable<T>();

  final callback = () {
    if (listenable is ValueListenable<T>) {
      observable.setValue(listenable.value, forceNotify: true);
    } else {
      observable.notify();
    }
  };

  listenable.addListener(callback);
  observable.register(DisposableClient()
    ..onDispose = () => listenable.removeListener(callback));

  return observable;
}