Parcourir la source

fix(ui/chat): render forwarded snapshots via markdown pipeline

ayn2op il y a 2 mois
Parent
commit
9a80120f97
1 fichiers modifiés avec 19 ajouts et 5 suppressions
  1. 19 5
      internal/ui/chat/messages_list.go

+ 19 - 5
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)
 }