Fixing logic for sending indicator

This commit is contained in:
Leandro Borges Ferreira
2023-02-10 16:01:57 +01:00
parent 2b9541c6d6
commit a59dd88af4
2 changed files with 11 additions and 5 deletions
@@ -65,10 +65,11 @@ class SendingIndicatorWrapper extends StatelessWidget {
initialData: channel.state?.read,
builder: (context, data) {
final readList = data.where((it) =>
it.user.id != streamChat.currentUser?.id &&
it.user.id != streamChat.currentUser?.id &&
(it.lastRead.isAfter(message.createdAt) ||
it.lastRead.isAtSameMomentAs(message.createdAt)));
final isMessageRead = readList.length >= (channel.memberCount ?? 0) - 1;
final isMessageRead = readList.isNotEmpty;
Widget child = StreamSendingIndicator(
message: message,
isMessageRead: isMessageRead,
@@ -225,6 +225,13 @@ class StreamChannelListTile extends StatelessWidget {
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));
return Padding(
padding: const EdgeInsets.only(right: 4),
child:
@@ -232,9 +239,7 @@ class StreamChannelListTile extends StatelessWidget {
StreamSendingIndicator(
message: lastMessage,
size: channelPreviewTheme.indicatorIconSize,
isMessageRead: channelState
.currentUserRead!.lastRead
.isAfter(lastMessage.createdAt),
isMessageRead: isLastMessageRead,
),
);
},