diff --git a/lib/music_library_web/components/record_components.ex b/lib/music_library_web/components/record_components.ex index 29e88832..58e6480d 100644 --- a/lib/music_library_web/components/record_components.ex +++ b/lib/music_library_web/components/record_components.ex @@ -395,4 +395,19 @@ defmodule MusicLibraryWeb.RecordComponents do country_code end end + + attr :colors, :list, required: true + + def record_colors(assigns) do + ~H""" + + + + + """ + end end diff --git a/lib/music_library_web/live/collection_live/show.ex b/lib/music_library_web/live/collection_live/show.ex index 6eadeef6..2c1bc275 100644 --- a/lib/music_library_web/live/collection_live/show.ex +++ b/lib/music_library_web/live/collection_live/show.ex @@ -8,7 +8,8 @@ defmodule MusicLibraryWeb.CollectionLive.Show do format_label: 1, type_label: 1, release_summary: 1, - artist_links: 1 + artist_links: 1, + record_colors: 1 ] alias MusicLibrary.{Records, ScrobbleActivity} diff --git a/lib/music_library_web/live/collection_live/show.html.heex b/lib/music_library_web/live/collection_live/show.html.heex index 2cc978fb..b98f332b 100644 --- a/lib/music_library_web/live/collection_live/show.html.heex +++ b/lib/music_library_web/live/collection_live/show.html.heex @@ -17,12 +17,7 @@ {@record.title}
-
-
+ <.record_colors colors={@dominant_colors} />
{Records.Record.format_release_date(@record.release_date)} ยท {format_label(
@record.format
diff --git a/lib/music_library_web/live/wishlist_live/show.ex b/lib/music_library_web/live/wishlist_live/show.ex
index 6734a8d4..68ee14cc 100644
--- a/lib/music_library_web/live/wishlist_live/show.ex
+++ b/lib/music_library_web/live/wishlist_live/show.ex
@@ -6,7 +6,8 @@ defmodule MusicLibraryWeb.WishlistLive.Show do
format_label: 1,
type_label: 1,
release_summary: 1,
- artist_links: 1
+ artist_links: 1,
+ record_colors: 1
]
alias MusicLibrary.Records
@@ -24,12 +25,14 @@ defmodule MusicLibraryWeb.WishlistLive.Show do
@impl true
def handle_params(%{"id" => id}, _, socket) do
record = Records.get_record!(id)
+ {:ok, dominant_colors} = Records.DominantColors.extract_dominant_colors(record.cover_data)
{:noreply,
socket
|> assign(:current_section, :wishlist)
|> assign(:page_title, page_title(socket.assigns.live_action, record))
- |> assign(:record, record)}
+ |> assign(:record, record)
+ |> assign(:dominant_colors, dominant_colors)}
end
@impl true
diff --git a/lib/music_library_web/live/wishlist_live/show.html.heex b/lib/music_library_web/live/wishlist_live/show.html.heex
index 6dc8642c..5fc65cae 100644
--- a/lib/music_library_web/live/wishlist_live/show.html.heex
+++ b/lib/music_library_web/live/wishlist_live/show.html.heex
@@ -16,7 +16,8 @@
+
+ <.record_colors colors={@dominant_colors} />
{Records.Record.format_release_date(@record.release_date)}
({gettext("Unreleased")})
{@record.title}
-