Load collection summary asynchronously on mount

This commit is contained in:
Claudio Ortolina
2026-04-13 13:11:15 +01:00
parent 5512ac0837
commit 76438360d7
@@ -237,8 +237,9 @@ defmodule MusicLibraryWeb.CollectionLive.Index do
|> assign(:import_query, "") |> assign(:import_query, "")
|> assign(:display, :grid) |> assign(:display, :grid)
|> assign(:open_chat, false) |> assign(:open_chat, false)
|> assign(:collection_summary, Collection.collection_summary()) |> assign(:collection_summary, {"", 0})
|> assign(:chat_count, Chats.count_chats(:collection, Chats.collection_musicbrainz_id()))} |> assign(:chat_count, Chats.count_chats(:collection, Chats.collection_musicbrainz_id()))
|> start_async(:collection_summary, &Collection.collection_summary/0)}
end end
@impl true @impl true
@@ -298,6 +299,15 @@ defmodule MusicLibraryWeb.CollectionLive.Index do
{:noreply, assign(socket, :chat_count, chat_count)} {:noreply, assign(socket, :chat_count, chat_count)}
end end
@impl true
def handle_async(:collection_summary, {:ok, summary}, socket) do
{:noreply, assign(socket, :collection_summary, summary)}
end
def handle_async(:collection_summary, {:exit, _reason}, socket) do
{:noreply, socket}
end
@impl true @impl true
def handle_event("delete", %{"id" => id}, socket) do def handle_event("delete", %{"id" => id}, socket) do
record = Records.get_record!(id) record = Records.get_record!(id)