From ff0ef3bb432f1cedb6e5b8a0168bfa7c9e9e15f0 Mon Sep 17 00:00:00 2001 From: phantomreactor Date: Sat, 3 May 2025 01:53:58 +0530 Subject: feat: add support for images --- internal/tui/components/chat/message.go | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) (limited to 'internal/tui/components/chat/message.go') diff --git a/internal/tui/components/chat/message.go b/internal/tui/components/chat/message.go index ed9906b6f..6711ab525 100644 --- a/internal/tui/components/chat/message.go +++ b/internal/tui/components/chat/message.go @@ -80,7 +80,29 @@ func renderMessage(msg string, isUser bool, isFocused bool, width int, info ...s } func renderUserMessage(msg message.Message, isFocused bool, width int, position int) uiMessage { - content := renderMessage(msg.Content().String(), true, isFocused, width) + var styledAttachments []string + t := theme.CurrentTheme() + attachmentStyles := styles.BaseStyle(). + MarginLeft(1). + Background(t.TextMuted()). + Foreground(t.Text()) + for _, attachment := range msg.BinaryContent() { + file := filepath.Base(attachment.Path) + var filename string + if len(file) > 10 { + filename = fmt.Sprintf(" %s %s...", styles.DocumentIcon, file[0:7]) + } else { + filename = fmt.Sprintf(" %s %s", styles.DocumentIcon, file) + } + styledAttachments = append(styledAttachments, attachmentStyles.Render(filename)) + } + content := "" + if len(styledAttachments) > 0 { + attachmentContent := styles.BaseStyle().Width(width).Render(lipgloss.JoinHorizontal(lipgloss.Left, styledAttachments...)) + content = renderMessage(msg.Content().String(), true, isFocused, width, attachmentContent) + } else { + content = renderMessage(msg.Content().String(), true, isFocused, width) + } userMsg := uiMessage{ ID: msg.ID, messageType: userMessageType, -- cgit v1.2.3