watch property

Stream<PagedViewState<T>> get watch

Emits a new PagedViewState whenever the window or fetch state changes. Seeded: every listener first receives the current state. A stream over a disposed instance completes immediately.

Implementation

Stream<PagedViewState<T>> get watch {
  if (_disposed) return Stream<PagedViewState<T>>.empty();
  final controller =
      _controller ??= StreamController<PagedViewState<T>>.broadcast();
  return Stream<PagedViewState<T>>.multi((listener) {
    listener.add(_snapshot());
    final subscription = controller.stream.listen(
      listener.add,
      onError: listener.addError,
      onDone: listener.close,
    );
    listener.onCancel = subscription.cancel;
  });
}