diff --git a/packages/stream_chat/lib/src/api/channel.dart b/packages/stream_chat/lib/src/api/channel.dart index c63fe0f3..52b748d4 100644 --- a/packages/stream_chat/lib/src/api/channel.dart +++ b/packages/stream_chat/lib/src/api/channel.dart @@ -1463,10 +1463,16 @@ class ChannelClientState { void addMessage(Message message) { if (message.parentId == null || message.showInChannel == true) { final newMessages = List.from(_channelState.messages); - final oldIndex = newMessages.indexWhere((m) => m.id == message.id); if (oldIndex != -1) { - newMessages[oldIndex] = message; + Message m; + if (message.quotedMessageId != null && message.quotedMessage == null) { + final oldMessage = newMessages[oldIndex]; + m = message.copyWith( + quotedMessage: oldMessage.quotedMessage, + ); + } + newMessages[oldIndex] = m ?? message; } else { newMessages.add(message); }