fix: added delete buttons on chats and have chat titeling (maybe)

This commit is contained in:
2026-05-01 22:29:06 +02:00
parent a17c549817
commit d3aa7f2438
11 changed files with 205 additions and 6 deletions

View File

@@ -458,6 +458,30 @@ defmodule BDS.Desktop.ShellLive do
end
end
def handle_event("delete_sidebar_chat", %{"id" => conversation_id}, socket) do
case AI.delete_chat_conversation(conversation_id) do
{:ok, :deleted} ->
workbench = Workbench.close_tab(socket.assigns.workbench, :chat, conversation_id)
tab_meta = Map.delete(socket.assigns.tab_meta, {:chat, conversation_id})
{:noreply,
socket
|> assign(:tab_meta, tab_meta)
|> reload_shell(workbench)}
{:error, reason} ->
{:noreply,
socket
|> append_output_entry(
translated("sidebar.chat.deleteConversation"),
inspect(reason),
nil,
"error"
)
|> reload_shell(socket.assigns.workbench)}
end
end
def handle_event("toggle_offline_mode", _params, socket) do
next_mode = not socket.assigns.offline_mode

View File

@@ -353,7 +353,7 @@ defmodule BDS.Desktop.ShellLive.SidebarComponents do
<%= if Enum.any?(Map.get(@sidebar_data, :items, [])) do %>
<div class={if(template_sidebar?(@sidebar_data), do: "chat-list-items", else: "settings-nav-list")}>
<%= for item <- Map.get(@sidebar_data, :items, []) do %>
<%= if item.route == "templates" do %>
<%= if item.route in ["templates", "chat"] do %>
<div
class={["chat-list-item", if(sidebar_item_selected?(@workbench, item.route, item.id), do: "active")]}
data-item-id={item.id}
@@ -379,11 +379,11 @@ defmodule BDS.Desktop.ShellLive.SidebarComponents do
</button>
<button
class="chat-item-delete"
data-testid="sidebar-delete-template"
data-testid={if(item.route == "chat", do: "sidebar-delete-chat", else: "sidebar-delete-template")}
data-item-id={item.id}
type="button"
title={translated("Delete") <> " " <> translated("Template")}
phx-click="delete_sidebar_template"
title={if(item.route == "chat", do: translated("sidebar.chat.deleteConversation"), else: translated("Delete") <> " " <> translated("Template"))}
phx-click={if(item.route == "chat", do: "delete_sidebar_chat", else: "delete_sidebar_template")}
phx-value-id={item.id}
>
×