diff --git a/CHANGELOG.md b/CHANGELOG.md index 64ab144d..fe2e26db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## 0.2.20 + +- Implement shadowban + ## 0.2.19 - Updated llc dependency diff --git a/lib/src/channel_preview.dart b/lib/src/channel_preview.dart index 95fa4a3d..58557180 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 4a585a92..40053962 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -1,7 +1,7 @@ name: stream_chat_flutter homepage: https://github.com/GetStream/stream-chat-flutter description: Stream Chat official Flutter SDK. Build your own chat experience using Dart and Flutter. -version: 0.2.19 +version: 0.2.20 repository: https://github.com/GetStream/stream-chat-flutter issue_tracker: https://github.com/GetStream/stream-chat-flutter/issues diff --git a/test/src/channel_preview_test.dart b/test/src/channel_preview_test.dart index f5e0fbd0..a7173628 100644 --- a/test/src/channel_preview_test.dart +++ b/test/src/channel_preview_test.dart @@ -24,6 +24,11 @@ void main() { 'name': 'test name', }); when(channelState.unreadCount).thenReturn(1); + when(channelState.messages).thenReturn([ + Message( + text: 'hello', + ) + ]); when(channelState.lastMessage).thenReturn(Message( text: 'hello', ));