ClientState constructor

ClientState(
  1. StreamChatClient _client
)

Creates a new instance listening to events and updating the state

Implementation

ClientState(this._client) {
  _subscriptions.addAll([
    _client
        .on()
        .where((event) =>
            event.me != null && event.type != EventType.healthCheck)
        .map((e) => e.me!)
        .listen((user) => currentUser = currentUser?.merge(user) ?? user),
    _client
        .on()
        .map((event) => event.unreadChannels)
        .whereType<int>()
        .listen((count) {
      currentUser = currentUser?.copyWith(unreadChannels: count);
    }),
    _client
        .on()
        .map((event) => event.totalUnreadCount)
        .whereType<int>()
        .listen((count) {
      currentUser = currentUser?.copyWith(totalUnreadCount: count);
    }),
  ]);

  _listenChannelDeleted();

  _listenChannelHidden();

  _listenUserUpdated();

  _listenAllChannelsRead();
}