diff --git a/packages/stream_chat_flutter/lib/src/scroll_view/channel_scroll_view/stream_channel_list_tile.dart b/packages/stream_chat_flutter/lib/src/scroll_view/channel_scroll_view/stream_channel_list_tile.dart index 267c3694..a17a2eaf 100644 --- a/packages/stream_chat_flutter/lib/src/scroll_view/channel_scroll_view/stream_channel_list_tile.dart +++ b/packages/stream_chat_flutter/lib/src/scroll_view/channel_scroll_view/stream_channel_list_tile.dart @@ -216,31 +216,40 @@ class StreamChannelListTile extends StatelessWidget { initialData: channelState.messages, comparator: const ListEquality().equals, builder: (context, messages) { - final lastMessage = messages.lastWhereOrNull( - (m) => !m.shadowed && !m.isDeleted, - ); + return BetterStreamBuilder>( + stream: channelState.readStream, + initialData: channelState.read, + builder: (context, reads) { + final lastMessage = messages.lastWhereOrNull( + (m) => !m.shadowed && !m.isDeleted, + ); - if (lastMessage == null || - (lastMessage.user?.id != currentUser.id)) { - return const Offstage(); - } + if (lastMessage == null || + (lastMessage.user?.id != currentUser.id)) { + return const Offstage(); + } - final isLastMessageRead = channelState.read - .where((readData) => readData.user.id != currentUser.id) - .any((readData) => - readData.lastRead.isAfter(lastMessage.createdAt) || - readData.lastRead - .isAtSameMomentAs(lastMessage.createdAt)); + final isLastMessageRead = channelState.read + .where( + (readData) => readData.user.id != currentUser.id, + ) + .any((readData) => + readData.lastRead + .isAfter(lastMessage.createdAt) || + readData.lastRead + .isAtSameMomentAs(lastMessage.createdAt)); - return Padding( - padding: const EdgeInsets.only(right: 4), - child: - sendingIndicatorBuilder?.call(context, lastMessage) ?? + return Padding( + padding: const EdgeInsets.only(right: 4), + child: sendingIndicatorBuilder?.call( + context, lastMessage) ?? StreamSendingIndicator( message: lastMessage, size: channelPreviewTheme.indicatorIconSize, isMessageRead: isLastMessageRead, ), + ); + }, ); }, ),