defmodule MusicLibraryWeb.ReleaseComponent do use MusicLibraryWeb, :live_component use Gettext, backend: MusicLibraryWeb.Gettext import MusicLibraryWeb.RecordComponents, only: [ format_duration: 1 ] alias MusicLibrary.ScrobbleActivity def open(id), do: Fluxon.open_dialog(id) @impl true def mount(socket) do {:ok, socket |> assign(:can_scrobble?, ScrobbleActivity.can_scrobble?())} end @impl true def update(%{record: record} = assigns, socket) do {:ok, socket |> assign(assigns) |> assign_async(:release_with_tracks, fn -> with {:ok, release} <- MusicBrainz.get_release(record.selected_release_id) do {:ok, %{release_with_tracks: MusicBrainz.Release.from_api_response(release)}} end end)} end @impl true def render(assigns) do ~H"""
{medium_duration(medium)}