diff --git a/packages/stream_chat/CHANGELOG.md b/packages/stream_chat/CHANGELOG.md index dad87973..7afc4000 100644 --- a/packages/stream_chat/CHANGELOG.md +++ b/packages/stream_chat/CHANGELOG.md @@ -4,6 +4,7 @@ - [[#857]](https://github.com/GetStream/stream-chat-flutter/issues/857) Channel now listens for member ban/unban and updates the channel state with the latest data. +- [[#748]](https://github.com/GetStream/stream-chat-flutter/issues/748) `Message.user` are now also included while saving users in persistence. 🔄 Changed @@ -18,6 +19,10 @@ - Fixed `unreadCount` after removing user from a channel. - Added `client.queryBannedUsers`, `channel.queryBannedUsers` endpoint for querying banned users. +🐞 Fixed + +- [[#871]](https://github.com/GetStream/stream-chat-flutter/issues/871) Fixed thread message deletion. + ## 3.3.1 🐞 Fixed diff --git a/packages/stream_chat/lib/src/client/channel.dart b/packages/stream_chat/lib/src/client/channel.dart index 7acc620a..352ce4a7 100644 --- a/packages/stream_chat/lib/src/client/channel.dart +++ b/packages/stream_chat/lib/src/client/channel.dart @@ -1803,7 +1803,13 @@ class ChannelClientState { if (replyCount == null || replyCount == 0) return; addMessage(parentMessage.copyWith(replyCount: replyCount - 1)); - updateThreadInfo(parentId, threads[parentId]!..remove(message)); + updateThreadInfo( + parentId, + threads[parentId]! + ..removeWhere( + (e) => e.id == message.id, + ), + ); } else { // Remove regular message final allMessages = [...messages]; diff --git a/packages/stream_chat/lib/src/db/chat_persistence_client.dart b/packages/stream_chat/lib/src/db/chat_persistence_client.dart index 98f6a364..82ba181a 100644 --- a/packages/stream_chat/lib/src/db/chat_persistence_client.dart +++ b/packages/stream_chat/lib/src/db/chat_persistence_client.dart @@ -253,6 +253,7 @@ abstract class ChatPersistenceClient { users.addAll([ channel.createdBy, + ...messages.map((it) => it.user), ...reads.map((it) => it.user), ...members.map((it) => it.user), ...reactions.map((it) => it.user),