Can copy a chat message

This commit is contained in:
Claudio Ortolina
2026-04-05 14:35:03 +01:00
parent 40ea3aaa2a
commit 501ff18733
3 changed files with 22 additions and 3 deletions
+12 -3
View File
@@ -245,9 +245,19 @@ defmodule MusicLibraryWeb.Components.Chat do
]}
>
<p :if={message.role == "user"} class="whitespace-pre-wrap">{message.content}</p>
<div :if={message.role == "assistant"} class="dark:prose-invert prose prose-sm">
<div
:if={message.role == "assistant"}
id={"chat-msg-#{message.id}"}
class="dark:prose-invert prose prose-sm"
>
{raw(Markdown.to_html(message.content, link_target: "_blank"))}
</div>
<div :if={message.role == "assistant"} class="flex justify-end -mb-1 -mr-2">
<.copy_to_clipboard
target_id={"chat-msg-#{message.id}"}
label={gettext("Copy message")}
/>
</div>
</div>
<div
@@ -342,12 +352,11 @@ defmodule MusicLibraryWeb.Components.Chat do
def handle_event("select_chat", %{"id" => id}, socket) do
chat = Chats.get_chat!(id)
messages = Enum.map(chat.messages, &%{role: &1.role, content: &1.content})
{:noreply,
socket
|> assign(:chat, chat)
|> assign(:messages, messages)
|> assign(:messages, chat.messages)
|> assign(:current_response, "")
|> assign(:streaming_doc, nil)
|> assign(:error, nil)