From 7cceb59f0a9942b6d41865cade3d1e5f499c078d Mon Sep 17 00:00:00 2001 From: Salvatore Giordano Date: Fri, 18 Dec 2020 11:58:45 +0100 Subject: [PATCH] implement shadowban --- lib/src/channel_preview.dart | 2 +- lib/src/message_list_view.dart | 3 ++- lib/src/stream_chat.dart | 1 + pubspec.yaml | 2 +- 4 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/src/channel_preview.dart b/lib/src/channel_preview.dart index 95fa4a3d..c01ccd5d 100644 --- a/lib/src/channel_preview.dart +++ b/lib/src/channel_preview.dart @@ -128,7 +128,7 @@ class ChannelPreview extends StatelessWidget { stream: channel.state.messagesStream, initialData: channel.state.messages, builder: (context, snapshot) { - final lastMessage = channel.state.lastMessage; + final lastMessage = snapshot.data.lastWhere((m) => m.shadowed != true); if (lastMessage == null) { return SizedBox(); } diff --git a/lib/src/message_list_view.dart b/lib/src/message_list_view.dart index 2bbf4b82..f1d1a2ce 100644 --- a/lib/src/message_list_view.dart +++ b/lib/src/message_list_view.dart @@ -522,7 +522,8 @@ class _MessageListViewState extends State { .map((messages) => messages ?.where((m) => - !(m.status == MessageSendingStatus.FAILED && m.isDeleted)) + !(m.status == MessageSendingStatus.FAILED && m.isDeleted) && + m.shadowed != true) ?.toList() ?? []) .listen((newMessages) { diff --git a/lib/src/stream_chat.dart b/lib/src/stream_chat.dart index f5b91349..040409db 100644 --- a/lib/src/stream_chat.dart +++ b/lib/src/stream_chat.dart @@ -184,6 +184,7 @@ class StreamChatState extends State with WidgetsBindingObserver { .on(EventType.messageNew) .where((e) => e.user?.id != user.id) .where((e) => e.message.silent != true) + .where((e) => e.message.shadowed != true) .listen((event) async { final channel = client.channel( event.channelType, diff --git a/pubspec.yaml b/pubspec.yaml index dd5273b7..d3a0993c 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -23,7 +23,7 @@ dependencies: file_picker: ^2.0.12 image_picker: ^0.6.7+2 flutter_keyboard_visibility: ^4.0.1 - stream_chat: ^0.2.13 + stream_chat: ^0.2.19 mime: ^0.9.6+3 visibility_detector: ^0.1.5 http_parser: ^3.1.4