Skip to content

Stream of query notifies all boxes regardless of type #151

Closed
@RTrackerDev

Description

@RTrackerDev

Stream notifies all subscribers of changes no matter what box you listen.

I can offer a quick solution(PR: #152):

void _setup() {
    if (!_Observable.isSubscribed(store)) {
      _Observable.subscribe(store);
    }
    final storeAddress = store.ptr.address;

    _Observable._any[storeAddress] ??= <int, Any>{};
    _Observable._any[storeAddress][entityId] ??= (u, pid, __) {
      // dummy value to trigger an event
      _Observable.controller.add(entityId);
    };
  }

I changed _Observable.controller.add(pid) -> _Observable.controller.add(entityId)

And:

Stream<List<T>> findStream({int offset = 0, int limit = 0}) {
    _setup();
    return _Observable.controller.stream.where((e)=>e == entityId)
        .map((_) => find(offset: offset, limit: limit));
  }

  /// Use this for Query Property
  Stream<Query<T>> get stream {
    _setup();
    return _Observable.controller.stream.where((e)=>e == entityId).map((_) => this);
  }

I added .where((e)=>e == entityId) to stream

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions