From 682fe3f4476d673c514b460ca48d0d3a66e9c3c3 Mon Sep 17 00:00:00 2001 From: Deven Joshi Date: Tue, 11 May 2021 14:55:25 +0530 Subject: [PATCH] Changed to distinct implementation --- packages/stream_chat/lib/src/api/channel.dart | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/packages/stream_chat/lib/src/api/channel.dart b/packages/stream_chat/lib/src/api/channel.dart index e51725e3..ca3c638a 100644 --- a/packages/stream_chat/lib/src/api/channel.dart +++ b/packages/stream_chat/lib/src/api/channel.dart @@ -1297,8 +1297,6 @@ class ChannelClientState { _channelStateController = BehaviorSubject.seeded(channelState); - _messageListController = BehaviorSubject.seeded(channelState.messages); - _listenTypingEvents(); _listenMessageNew(); @@ -1604,7 +1602,9 @@ class ChannelClientState { List get messages => _channelState.messages; /// Channel message list as a stream - Stream?> get messagesStream => _messageListController.stream; + Stream?> get messagesStream => channelStateStream + .map((cs) => cs.messages) + .distinct((prev, next) => const ListEquality().equals(prev, next)); /// Channel pinned message list List? get pinnedMessages => _channelState.pinnedMessages.toList(); @@ -1774,15 +1774,10 @@ class ChannelClientState { /// The channel state related to this client ChannelState get channelState => _channelStateController.value!; late BehaviorSubject _channelStateController; - late BehaviorSubject> _messageListController; final Debounce _debouncedUpdatePersistenceChannelState; set _channelState(ChannelState v) { - if (!const ListEquality() - .equals(_messageListController.value, v.messages)) { - _messageListController.add(v.messages); - } _channelStateController.add(v); _debouncedUpdatePersistenceChannelState.call([v]); } @@ -1940,7 +1935,6 @@ class ChannelClientState { retryQueue!.dispose(); _subscriptions.forEach((s) => s.cancel()); _channelStateController.close(); - _messageListController.close(); _isUpToDateController.close(); _threadsController.close(); _cleaningTimer.cancel();