diff --git a/packages/stream_chat/CHANGELOG.md b/packages/stream_chat/CHANGELOG.md index 667365d0..de445890 100644 --- a/packages/stream_chat/CHANGELOG.md +++ b/packages/stream_chat/CHANGELOG.md @@ -1,3 +1,9 @@ +## Upcoming + +🐞 Fixed + +- markAllRead() now updates local channel states. + ## 3.1.1 ✅ Added diff --git a/packages/stream_chat/lib/src/client/client.dart b/packages/stream_chat/lib/src/client/client.dart index ae6716fd..6b6ae933 100644 --- a/packages/stream_chat/lib/src/client/client.dart +++ b/packages/stream_chat/lib/src/client/client.dart @@ -1376,6 +1376,8 @@ class ClientState { _listenChannelHidden(); _listenUserUpdated(); + + _listenAllChannelsRead(); } final _subscriptions = []; @@ -1405,6 +1407,17 @@ class ClientState { })); } + void _listenAllChannelsRead() { + _subscriptions + .add(_client.on(EventType.notificationMarkRead).listen((event) { + if (event.cid == null) { + channels.forEach((key, value) { + value.state?.unreadCount = 0; + }); + } + })); + } + void _listenChannelDeleted() { _subscriptions.add(_client .on(