diff --git a/lib/music_library/scrobble_activity.ex b/lib/music_library/scrobble_activity.ex
index 0124d172..6508a484 100644
--- a/lib/music_library/scrobble_activity.ex
+++ b/lib/music_library/scrobble_activity.ex
@@ -289,8 +289,8 @@ defmodule MusicLibrary.ScrobbleActivity do
fragment("json_extract(artist, '$.musicbrainz_id')")
],
select: %{
- artist_name: fragment("json_extract(artist, '$.name')"),
- artist_musicbrainz_id: fragment("json_extract(artist, '$.musicbrainz_id')"),
+ name: fragment("json_extract(artist, '$.name')"),
+ musicbrainz_id: fragment("json_extract(artist, '$.musicbrainz_id')"),
image_hash: ai.image_data_hash,
play_count: count(t.scrobbled_at_uts)
},
@@ -326,8 +326,8 @@ defmodule MusicLibrary.ScrobbleActivity do
fragment("json_extract(artist, '$.musicbrainz_id')")
],
select: %{
- artist_name: fragment("json_extract(artist, '$.name')"),
- artist_musicbrainz_id: fragment("json_extract(artist, '$.musicbrainz_id')"),
+ name: fragment("json_extract(artist, '$.name')"),
+ musicbrainz_id: fragment("json_extract(artist, '$.musicbrainz_id')"),
image_hash: ai.image_data_hash,
play_count: count(t.scrobbled_at_uts)
},
diff --git a/lib/music_library_web/components/artist_components.ex b/lib/music_library_web/components/artist_components.ex
new file mode 100644
index 00000000..b1376c73
--- /dev/null
+++ b/lib/music_library_web/components/artist_components.ex
@@ -0,0 +1,27 @@
+defmodule MusicLibraryWeb.ArtistComponents do
+ use MusicLibraryWeb, :html
+
+ alias MusicLibrary.Assets.Transform
+
+ attr :artist, :map, required: true
+ attr :image_hash, :string, required: true
+ attr :class, :string, required: false
+ attr :width, :integer, default: nil
+
+ def artist_image(assigns) do
+ payload =
+ %Transform{hash: assigns.image_hash, width: assigns.width}
+ |> Transform.encode!()
+
+ assigns = assign(assigns, :payload, payload)
+
+ ~H"""
+ ~p"/images/cover-not-found.png" <> "';"}
+ />
+ """
+ end
+end
diff --git a/lib/music_library_web/components/search_components.ex b/lib/music_library_web/components/search_components.ex
index 4583c288..98d6379d 100644
--- a/lib/music_library_web/components/search_components.ex
+++ b/lib/music_library_web/components/search_components.ex
@@ -6,8 +6,8 @@ defmodule MusicLibraryWeb.SearchComponents do
use MusicLibraryWeb, :html
import MusicLibraryWeb.RecordComponents, only: [format_label: 1, type_label: 1, record_cover: 1]
+ import MusicLibraryWeb.ArtistComponents, only: [artist_image: 1]
- alias MusicLibrary.Assets.Transform
alias MusicLibrary.Records.Record
@doc """
@@ -78,12 +78,7 @@ defmodule MusicLibraryWeb.SearchComponents do
>
@@ -98,14 +93,6 @@ defmodule MusicLibraryWeb.SearchComponents do """ end - defp artist_image_path(image_data_hash) do - payload = - %Transform{hash: image_data_hash, width: 96} - |> Transform.encode!() - - ~p"/assets/#{payload}" - end - @doc """ Renders a search result group with a title and items. diff --git a/lib/music_library_web/live/artist_live/form_component.ex b/lib/music_library_web/live/artist_live/form_component.ex index 1021ce4e..09b801c0 100644 --- a/lib/music_library_web/live/artist_live/form_component.ex +++ b/lib/music_library_web/live/artist_live/form_component.ex @@ -1,9 +1,10 @@ defmodule MusicLibraryWeb.ArtistLive.FormComponent do use MusicLibraryWeb, :live_component + import MusicLibraryWeb.ArtistComponents, only: [artist_image: 1] + alias MusicLibrary.Artists alias MusicLibrary.Assets - alias MusicLibrary.Assets.Transform @impl true def mount(socket) do @@ -43,11 +44,11 @@ defmodule MusicLibraryWeb.ArtistLive.FormComponent do ]} >