diff --git a/src/elekf/web/components/library_views/albums_view.gleam b/src/elekf/web/components/library_views/albums_view.gleam index 834ba88..16dfb52 100644 --- a/src/elekf/web/components/library_views/albums_view.gleam +++ b/src/elekf/web/components/library_views/albums_view.gleam @@ -5,10 +5,11 @@ import gleam/int import gleam/list import gleam/map import gleam/option -import lustre/element/html.{div, h3, p} +import lustre/element/html.{div, h3, img, p} import lustre/element.{text} import lustre/attribute import lustre/event +import ibroadcast/artwork import elekf/library.{Library} import elekf/library/album.{Album} import elekf/web/components/library_view.{LibraryItem, Model, StartPlay} @@ -63,6 +64,7 @@ fn item_view( 0 -> "Unknown artist" id -> library.assert_artist(model.library, id).name } + let assert Ok(first_track) = list.first(tracks) div( [ @@ -72,6 +74,21 @@ fn item_view( attribute.attribute("role", "button"), ], [ + case model.settings, { first_track.1 }.artwork_id { + option.Some(s), id if id != 0 -> + img([ + attribute.class("artist-image"), + attribute.alt("artist.name"), + attribute.src(artwork.url( + s.artwork_server, + int.to_string(id), + artwork.S300, + )), + attribute.attribute("loading", "lazy"), + ]) + _, _ -> + div([attribute.class("artist-image-placeholder")], [text(album.name)]) + }, h3([attribute.class("album-title")], [text(album.name)]), p([attribute.class("album-artist")], [text(artist_name)]), p(