From 9a80120f97b79ac1aeef437faca20e7febcec056 Mon Sep 17 00:00:00 2001 From: ayn2op Date: Mon, 16 Feb 2026 19:34:42 -0500 Subject: [PATCH] fix(ui/chat): render forwarded snapshots via markdown pipeline --- internal/ui/chat/messages_list.go | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/internal/ui/chat/messages_list.go b/internal/ui/chat/messages_list.go index 86c83f2..1d4915f 100644 --- a/internal/ui/chat/messages_list.go +++ b/internal/ui/chat/messages_list.go @@ -428,10 +428,24 @@ func (ml *messagesList) drawContent(builder *tview.LineBuilder, message discord. } } -func (ml *messagesList) drawSnapshotContent(builder *tview.LineBuilder, message discord.MessageSnapshotMessage, baseStyle tcell.Style) { - c := []byte(message.Content) - // discordmd doesn't support MessageSnapshotMessage, so we just use write it as is. todo? - builder.Write(string(c), baseStyle) +func (ml *messagesList) drawSnapshotContent(builder *tview.LineBuilder, parent discord.Message, snapshot discord.MessageSnapshotMessage, baseStyle tcell.Style) { + // Convert discord.MessageSnapshotMessage to discord.Message with common fields. + message := discord.Message{ + Type: snapshot.Type, + Content: snapshot.Content, + Embeds: snapshot.Embeds, + Attachments: snapshot.Attachments, + Timestamp: snapshot.Timestamp, + EditedTimestamp: snapshot.EditedTimestamp, + Flags: snapshot.Flags, + Mentions: snapshot.Mentions, + MentionRoleIDs: snapshot.MentionRoleIDs, + Stickers: snapshot.Stickers, + Components: snapshot.Components, + ChannelID: parent.ChannelID, + GuildID: parent.GuildID, + } + ml.drawContent(builder, message, baseStyle) } func (ml *messagesList) drawDefaultMessage(builder *tview.LineBuilder, message discord.Message, baseStyle tcell.Style) { @@ -463,7 +477,7 @@ func (ml *messagesList) drawForwardedMessage(builder *tview.LineBuilder, message ml.drawTimestamps(builder, message.Timestamp, baseStyle) ml.drawAuthor(builder, message, baseStyle) builder.Write(ml.cfg.Theme.MessagesList.ForwardedIndicator+" ", dimStyle) - ml.drawSnapshotContent(builder, message.MessageSnapshots[0].Message, baseStyle) + ml.drawSnapshotContent(builder, message, message.MessageSnapshots[0].Message, baseStyle) builder.Write(" ("+ml.formatTimestamp(message.MessageSnapshots[0].Message.Timestamp)+") ", dimStyle) }