Fix page title for scrobble anything release page

This commit is contained in:
Claudio Ortolina
2026-04-23 21:06:32 +01:00
parent 1bd5707cb4
commit 0784fc5e0c
5 changed files with 50 additions and 0 deletions
@@ -45,6 +45,8 @@ defmodule MusicLibraryWeb.Components.Release do
@impl true
def handle_async(:release_with_tracks, {:ok, {:ok, release}}, socket) do
notify_release_loaded(socket, release)
socket =
socket
|> assign(
@@ -74,6 +76,13 @@ defmodule MusicLibraryWeb.Components.Release do
)}
end
defp notify_release_loaded(socket, release) do
case socket.assigns[:on_release_loaded] do
nil -> :ok
tag -> send(self(), {tag, release})
end
end
defp apply_pending_form_params(socket) do
case socket.assigns.pending_form_params do
nil ->
@@ -38,6 +38,7 @@ defmodule MusicLibraryWeb.ScrobbleLive.ReleaseShow do
release_id={@release_id}
show_print?={false}
timezone={@timezone}
on_release_loaded={:release_loaded}
/>
</Layouts.app>
"""
@@ -62,4 +63,30 @@ defmodule MusicLibraryWeb.ScrobbleLive.ReleaseShow do
|> assign(:rg_id, rg_id)
|> assign(:release_id, release_id)}
end
@impl true
def handle_info({:release_loaded, release}, socket) do
{:noreply, assign(socket, :page_title, page_title(release))}
end
defp page_title(release) do
Enum.join(
[
artist_names(release),
"-",
release.title,
"·",
gettext("Release"),
"·",
gettext("Scrobble Anything")
],
" "
)
end
defp artist_names(release) do
release.artists
|> Enum.map_join(fn artist -> artist.name <> (artist.joinphrase || "") end)
|> String.trim()
end
end