Files
music_library/lib/music_library_web/components/artist_components.ex
T
2025-09-21 17:06:39 +03:00

28 lines
682 B
Elixir

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, default: nil
attr :width, :integer, default: nil
def artist_image(assigns) do
payload =
Transform.new(hash: assigns.image_hash, width: assigns.width)
|> Transform.encode!()
assigns = assign(assigns, :payload, payload)
~H"""
<img
class={@class}
src={~p"/assets/#{@payload}"}
alt={@artist.name}
onerror={"this.src = '" <> ~p"/images/cover-not-found.png" <> "';"}
/>
"""
end
end