Fix page title for scrobble anything release page
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user