Add button to retry fetching release tracks
This commit is contained in:
@@ -26,8 +26,8 @@ defmodule MusicLibraryWeb.Components.Release do
|
||||
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)}}
|
||||
with {:ok, release} <- load_release_with_tracks(record.selected_release_id) do
|
||||
{:ok, %{release_with_tracks: release}}
|
||||
end
|
||||
end)}
|
||||
end
|
||||
@@ -104,6 +104,14 @@ defmodule MusicLibraryWeb.Components.Release do
|
||||
data-slot="icon"
|
||||
/>
|
||||
{gettext("Error loading tracks")}
|
||||
<.button
|
||||
variant="ghost"
|
||||
size="xs"
|
||||
phx-click={JS.push("load_release_tracks", target: @myself)}
|
||||
class="ml-2 cursor-pointer"
|
||||
>
|
||||
{gettext("Retry")}
|
||||
</.button>
|
||||
</div>
|
||||
</:failed>
|
||||
<.medium
|
||||
@@ -377,6 +385,24 @@ defmodule MusicLibraryWeb.Components.Release do
|
||||
{:noreply, socket}
|
||||
end
|
||||
|
||||
def handle_event("load_release_tracks", _params, socket) do
|
||||
selected_release_id = socket.assigns.record.selected_release_id
|
||||
|
||||
{:noreply,
|
||||
socket
|
||||
|> assign_async(:release_with_tracks, fn ->
|
||||
with {:ok, release} <- load_release_with_tracks(selected_release_id) do
|
||||
{:ok, %{release_with_tracks: release}}
|
||||
end
|
||||
end)}
|
||||
end
|
||||
|
||||
defp load_release_with_tracks(release_id) do
|
||||
with {:ok, release} <- MusicBrainz.get_release(release_id) do
|
||||
{:ok, MusicBrainz.Release.from_api_response(release)}
|
||||
end
|
||||
end
|
||||
|
||||
defp medium_selected?(medium, selected_tracks) do
|
||||
medium_track_ids = medium.tracks |> Enum.map(& &1.id) |> MapSet.new()
|
||||
MapSet.subset?(medium_track_ids, selected_tracks)
|
||||
|
||||
@@ -1958,3 +1958,8 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Record sets"
|
||||
msgstr ""
|
||||
|
||||
#: lib/music_library_web/components/release.ex
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
@@ -1958,3 +1958,8 @@ msgstr ""
|
||||
#, elixir-autogen, elixir-format, fuzzy
|
||||
msgid "Record sets"
|
||||
msgstr ""
|
||||
|
||||
#: lib/music_library_web/components/release.ex
|
||||
#, elixir-autogen, elixir-format
|
||||
msgid "Retry"
|
||||
msgstr ""
|
||||
|
||||
Reference in New Issue
Block a user