filter method

AtomWithParent<FutureValue<A>, Atom<A>> filter(
  1. bool predicate(
    1. A value
    )
)

Create a derived atom, that filters the values using the given predicate.

Implementation

AtomWithParent<FutureValue<A>, Atom<A>> filter(
  bool Function(A value) predicate,
) =>
    AtomWithParent(this, (get, parent) {
      get.subscribe(parent, (A a) {
        if (predicate(a)) {
          get.setSelf(FutureValue.data(a));
        }
      }, fireImmediately: true);

      return get.self() ?? FutureValue.loading();
    });