fix deleted message preview

This commit is contained in:
Salvatore Giordano
2021-01-12 11:23:31 +01:00
parent 5f23e652a4
commit 317de62925
+11 -9
View File
@@ -96,12 +96,16 @@ class ChannelPreview extends StatelessWidget {
Flexible(child: _buildSubtitle(context)), Flexible(child: _buildSubtitle(context)),
Builder( Builder(
builder: (context) { builder: (context) {
if (channel.state.lastMessage?.user?.id == final lastMessage = channel.state.messages.lastWhere(
(m) => !m.isDeleted && m.shadowed != true,
orElse: () => null,
);
if (lastMessage?.user?.id ==
StreamChat.of(context).user.id) { StreamChat.of(context).user.id) {
return Padding( return Padding(
padding: const EdgeInsets.only(right: 4.0), padding: const EdgeInsets.only(right: 4.0),
child: SendingIndicator( child: SendingIndicator(
message: channel.state.lastMessage, message: lastMessage,
size: StreamChatTheme.of(context) size: StreamChatTheme.of(context)
.channelPreviewTheme .channelPreviewTheme
.indicatorIconSize, .indicatorIconSize,
@@ -110,8 +114,7 @@ class ChannelPreview extends StatelessWidget {
element.user.id != element.user.id !=
channel.client.state.user.id) channel.client.state.user.id)
?.where((element) => element.lastRead ?.where((element) => element.lastRead
.isAfter(channel .isAfter(lastMessage.createdAt))
.state.lastMessage.createdAt))
?.isNotEmpty == ?.isNotEmpty ==
true, true,
), ),
@@ -201,16 +204,15 @@ class ChannelPreview extends StatelessWidget {
stream: channel.state.messagesStream, stream: channel.state.messagesStream,
initialData: channel.state.messages, initialData: channel.state.messages,
builder: (context, snapshot) { builder: (context, snapshot) {
final lastMessage = snapshot.data final lastMessage = snapshot.data?.lastWhere(
?.lastWhere((m) => m.shadowed != true, orElse: () => null); (m) => m.shadowed != true && !m.isDeleted,
orElse: () => null);
if (lastMessage == null) { if (lastMessage == null) {
return SizedBox(); return SizedBox();
} }
var text = lastMessage.text; var text = lastMessage.text;
if (lastMessage.isDeleted) { if (lastMessage.attachments != null) {
text = 'This message was deleted.';
} else if (lastMessage.attachments != null) {
final parts = <String>[ final parts = <String>[
...lastMessage.attachments.map((e) { ...lastMessage.attachments.map((e) {
if (e.type == 'image') { if (e.type == 'image') {