From a6990a3f66a347837cd31a633eaa8abf4a37e50d Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Mon, 4 Apr 2022 10:35:14 +0200 Subject: [PATCH 1/6] fix(llc): member removed --- packages/stream_chat/lib/src/client/channel.dart | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/packages/stream_chat/lib/src/client/channel.dart b/packages/stream_chat/lib/src/client/channel.dart index a98e9467..e13191de 100644 --- a/packages/stream_chat/lib/src/client/channel.dart +++ b/packages/stream_chat/lib/src/client/channel.dart @@ -1587,9 +1587,13 @@ class ChannelClientState { final user = e.user; updateChannelState(channelState.copyWith( members: List.from( - channelState.members..removeWhere((m) => m.userId == user!.id), + channelState.members + .whereNot((m) => m.userId == user!.id) + .toList(growable: false), ), - read: channelState.read..removeWhere((r) => r.user.id == user!.id), + read: channelState.read + .whereNot((r) => r.user.id == user!.id) + .toList(growable: false), )); })); } From ad385c393da815e10853a607f3598ae955c97bd8 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Mon, 4 Apr 2022 10:36:11 +0200 Subject: [PATCH 2/6] chore(llc): update changelog --- packages/stream_chat/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/stream_chat/CHANGELOG.md b/packages/stream_chat/CHANGELOG.md index 9bffbf5c..349d6c00 100644 --- a/packages/stream_chat/CHANGELOG.md +++ b/packages/stream_chat/CHANGELOG.md @@ -7,6 +7,7 @@ any channel. - [[#1047]](https://github.com/GetStream/stream-chat-flutter/issues/1047) `own_capabilities` extraData missing after channel update. +- [[#1054]](https://github.com/GetStream/stream-chat-flutter/issues/1054) Fix `Unsupported operation: Cannot remove from an unmodifiable list`. ✅ Added From 047dce107f726b4a97f0efeed6d03d4db2cafc5d Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Mon, 4 Apr 2022 10:39:23 +0200 Subject: [PATCH 3/6] chore(llc): remove not needed List.from --- packages/stream_chat/lib/src/client/channel.dart | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/stream_chat/lib/src/client/channel.dart b/packages/stream_chat/lib/src/client/channel.dart index e13191de..cdac2220 100644 --- a/packages/stream_chat/lib/src/client/channel.dart +++ b/packages/stream_chat/lib/src/client/channel.dart @@ -1586,11 +1586,9 @@ class ChannelClientState { _subscriptions.add(_channel.on(EventType.memberRemoved).listen((Event e) { final user = e.user; updateChannelState(channelState.copyWith( - members: List.from( - channelState.members - .whereNot((m) => m.userId == user!.id) - .toList(growable: false), - ), + members: channelState.members + .whereNot((m) => m.userId == user!.id) + .toList(growable: false), read: channelState.read .whereNot((r) => r.user.id == user!.id) .toList(growable: false), From b610438913c5a514bbd12e6238e9fff7768ff037 Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Mon, 4 Apr 2022 10:41:04 +0200 Subject: [PATCH 4/6] fix(llc): use where --- packages/stream_chat/lib/src/client/channel.dart | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/stream_chat/lib/src/client/channel.dart b/packages/stream_chat/lib/src/client/channel.dart index cdac2220..7218cf65 100644 --- a/packages/stream_chat/lib/src/client/channel.dart +++ b/packages/stream_chat/lib/src/client/channel.dart @@ -1587,10 +1587,10 @@ class ChannelClientState { final user = e.user; updateChannelState(channelState.copyWith( members: channelState.members - .whereNot((m) => m.userId == user!.id) + .where((m) => m.userId != user!.id) .toList(growable: false), read: channelState.read - .whereNot((r) => r.user.id == user!.id) + .where((r) => r.user.id != user!.id) .toList(growable: false), )); })); From 36dc4295fdcb4908fecbddbaf3b6c6bbe64dd39f Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Mon, 4 Apr 2022 11:04:41 +0200 Subject: [PATCH 5/6] fix(llc): remove hard delete messages from persistence storage --- packages/stream_chat/lib/src/client/channel.dart | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/packages/stream_chat/lib/src/client/channel.dart b/packages/stream_chat/lib/src/client/channel.dart index 7218cf65..7575b29d 100644 --- a/packages/stream_chat/lib/src/client/channel.dart +++ b/packages/stream_chat/lib/src/client/channel.dart @@ -1094,7 +1094,6 @@ class Channel { // remove the passed message if response does // not contain message state!.removeMessage(message); - await _client.chatPersistenceClient?.deleteMessageById(messageId); } return res; } @@ -1851,7 +1850,9 @@ class ChannelClientState { } /// Remove a [message] from this [channelState]. - void removeMessage(Message message) { + void removeMessage(Message message) async { + await _channel._client.chatPersistenceClient?.deleteMessageById(message.id); + final parentId = message.parentId; // i.e. it's a thread message, Remove it if (parentId != null) { From aa20e1146596050609a7ea31bb79c2551b9b380a Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Mon, 4 Apr 2022 11:05:18 +0200 Subject: [PATCH 6/6] chore(llc): update changelog --- packages/stream_chat/CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/stream_chat/CHANGELOG.md b/packages/stream_chat/CHANGELOG.md index 349d6c00..347b3491 100644 --- a/packages/stream_chat/CHANGELOG.md +++ b/packages/stream_chat/CHANGELOG.md @@ -8,6 +8,7 @@ - [[#1047]](https://github.com/GetStream/stream-chat-flutter/issues/1047) `own_capabilities` extraData missing after channel update. - [[#1054]](https://github.com/GetStream/stream-chat-flutter/issues/1054) Fix `Unsupported operation: Cannot remove from an unmodifiable list`. +- [[#1033]](https://github.com/GetStream/stream-chat-flutter/issues/1033) Hard delete from dashboard does not delete message from client. ✅ Added