Add a release tracked badge to records in lists

This commit is contained in:
Claudio Ortolina
2026-04-02 11:52:07 +01:00
parent b3af5be00d
commit 3f7da55e50
9 changed files with 374 additions and 14 deletions
@@ -3,7 +3,9 @@ defmodule MusicLibraryWeb.RecordSetLive.Index do
import MusicLibraryWeb.Components.Pagination
import MusicLibraryWeb.LiveHelpers.Params
import MusicLibraryWeb.RecordComponents, only: [artist_links: 1, type_label: 1, format_label: 1]
import MusicLibraryWeb.RecordComponents,
only: [artist_links: 1, type_label: 1, format_label: 1, release_status_icon: 1]
alias MusicLibrary.{Records, RecordSets}
alias MusicLibrary.RecordSets.RecordSet
@@ -395,8 +397,9 @@ defmodule MusicLibraryWeb.RecordSetLive.Index do
<h2 class="mt-1 text-sm/6 text-zinc-700">
<.artist_links joinphrase_class="text-sm" artists={item.record.artists} />
</h2>
<h3 class="flex text-sm/5 font-semibold text-wrap text-zinc-700 dark:text-zinc-300">
<h3 class="flex items-center gap-1 text-sm/5 font-semibold text-wrap text-zinc-700 dark:text-zinc-300">
{item.record.title}
<.release_status_icon record={item.record} />
</h3>
<p class="pointer-events-none block text-sm font-medium text-zinc-500">
{format_label(item.record.format)} · {type_label(item.record.type)}
@@ -5,7 +5,8 @@ defmodule MusicLibraryWeb.RecordSetLive.RecordPicker do
alias MusicLibrary.Records.Record
alias MusicLibrary.Wishlist
import MusicLibraryWeb.RecordComponents, only: [format_label: 1, type_label: 1]
import MusicLibraryWeb.RecordComponents,
only: [format_label: 1, type_label: 1, release_status_icon: 1]
@impl true
def render(assigns) do
@@ -93,7 +94,7 @@ defmodule MusicLibraryWeb.RecordSetLive.RecordPicker do
</div>
<div class="min-w-0 flex-auto">
<p class="truncate text-sm font-medium text-zinc-900 dark:text-zinc-100">
{@record.title}
{@record.title} <.release_status_icon record={@record} />
</p>
<p class="truncate text-xs text-zinc-500 dark:text-zinc-400">
{Record.artist_names(@record)}
@@ -1,7 +1,8 @@
defmodule MusicLibraryWeb.RecordSetLive.Show do
use MusicLibraryWeb, :live_view
import MusicLibraryWeb.RecordComponents, only: [artist_links: 1, type_label: 1, format_label: 1]
import MusicLibraryWeb.RecordComponents,
only: [artist_links: 1, type_label: 1, format_label: 1, release_status_icon: 1]
alias MusicLibrary.{Records, RecordSets}
alias MusicLibrary.RecordSets.RecordSet
@@ -130,8 +131,9 @@ defmodule MusicLibraryWeb.RecordSetLive.Show do
<h2 class="mt-1 text-sm/6 text-zinc-700">
<.artist_links joinphrase_class="text-sm" artists={item.record.artists} />
</h2>
<h3 class="flex text-sm/5 font-semibold text-wrap text-zinc-700 dark:text-zinc-300">
<h3 class="flex items-center gap-1 text-sm/5 font-semibold text-wrap text-zinc-700 dark:text-zinc-300">
{item.record.title}
<.release_status_icon record={item.record} />
</h3>
<p class="pointer-events-none block text-sm font-medium text-zinc-500">
{format_label(item.record.format)} · {type_label(item.record.type)}