defmodule MusicLibraryWeb.StatsComponents do use MusicLibraryWeb, :live_component attr :record, MusicLibrary.Records.Record, required: true attr :title, :string, required: true attr :class, :string def album_preview(assigns) do ~H"""
{@record.title}

{@title}

{@record.title} <.link :for={artist <- @record.artists} class="text-sm md:text-base text-zinc-600 dark:text-zinc-200 hover:text-zinc-500 dark:text-zinc-300 dark:hover:text-zinc-200" navigate={~p"/artists/#{artist.musicbrainz_id}"} > {artist.name}

""" end attr :title, :string, required: true attr :count, :integer, required: true attr :path, :string, required: true def counter(assigns) do ~H"""

{@title}

<.link navigate={@path} class="block text-2xl sm:text-3xl font-semibold text-center text-zinc-900 hover:text-zinc-500 dark:text-zinc-300 dark:hover:text-zinc-200" > {@count}
""" end attr :albums, :list, required: true attr :collected_releases, :list, required: true attr :wishlisted_releases, :list, required: true def top_albums_by_period(assigns) do ~H"""
{album.album_title}
<.link class="text-xs text-zinc-700 hover:text-zinc-500 dark:text-zinc-400 dark:hover:text-zinc-300 truncate" navigate={~p"/artists/#{album.artist_musicbrainz_id}"} > {album.artist_name}

{album.album_title}

<.badge :if={album.album_musicbrainz_id == ""}> {album.play_count} <.badge :if={ album.album_musicbrainz_id !== "" and !tracked_record?( @collected_releases ++ @wishlisted_releases, album.album_musicbrainz_id ) }> {album.play_count} <.badge :if={tracked_record?(@collected_releases, album.album_musicbrainz_id)} color="green"> {album.play_count} <.badge :if={tracked_record?(@wishlisted_releases, album.album_musicbrainz_id)} color="yellow" > {album.play_count}
""" end attr :artists, :list, required: true def top_artists_by_period(assigns) do ~H"""
{artist.artist_name} ~p"/images/cover-not-found.png" <> "';"} />
<.icon name="hero-user" class="w-6 h-6 text-zinc-400" />

{artist.artist_name}

<.badge> {artist.play_count}
""" end def refresh_lastfm_feed_button(assigns) do ~H""" """ end def tracked_record?(tracked_releases, release_id) do Enum.find_value(tracked_releases, fn tracked_release -> if tracked_release.release_id == release_id, do: tracked_release.record_id end) end defp navigate_to_record(collected_releases, wishlisted_releases, musicbrainz_id) do cond do record_id = tracked_record?(collected_releases, musicbrainz_id) -> JS.navigate(~p"/collection/#{record_id}") record_id = tracked_record?(wishlisted_releases, musicbrainz_id) -> JS.navigate(~p"/wishlist/#{record_id}") true -> nil end end end