Show if a wishlisted album is unreleased

This commit is contained in:
Claudio Ortolina
2025-01-29 10:08:28 +00:00
parent 32bc4067ff
commit 06f1997d59
8 changed files with 122 additions and 50 deletions
+10
View File
@@ -221,6 +221,16 @@ defmodule MusicLibrary.Records.Record do
end
end
def released?(record, current_day) do
case Date.from_iso8601(record.release) do
{:ok, release_date} ->
Date.compare(current_day, release_date) != :lt
_error ->
false
end
end
def format_as_date(purchased_at) do
"#{purchased_at.day}/#{purchased_at.month}/#{purchased_at.year}"
end
@@ -7,6 +7,7 @@ defmodule MusicLibraryWeb.RecordComponents do
attr :record_show_path, :any, required: true
attr :record_edit_path, :any, required: true
attr :records, :list, required: true
attr :current_date, Date, required: false, default: nil
def record_list(assigns) do
~H"""
@@ -43,6 +44,9 @@ defmodule MusicLibraryWeb.RecordComponents do
</h2>
<p class="mt-1 text-xs leading-5 text-zinc-500 dark:text-zinc-400">
{Records.Record.format_release(record.release)}
<span :if={@current_date && !Records.Record.released?(record, @current_date)}>
({gettext("Unreleased")})
</span>
</p>
<p class="sm:hidden mt-1 text-xs leading-5 text-zinc-500 dark:text-zinc-400">
{Records.Record.format_long_label(record.format)} · {Records.Record.type_long_label(
@@ -23,7 +23,12 @@ defmodule MusicLibraryWeb.WishlistLive.Index do
socket
end
{:ok, assign(socket, :nav_section, :wishlist)}
current_date = DateTime.utc_now() |> DateTime.to_date()
{:ok,
socket
|> assign(nav_section: :wishlist)
|> assign(:current_date, current_date)}
end
@impl true
@@ -18,6 +18,7 @@
</div>
<.record_list
current_date={@current_date}
records={@streams.records}
record_show_path={fn record -> ~p"/wishlist/#{record}" end}
record_edit_path={fn record -> ~p"/wishlist/#{record}/edit" end}
@@ -13,7 +13,12 @@ defmodule MusicLibraryWeb.WishlistLive.Show do
socket
end
{:ok, socket}
current_date = DateTime.utc_now() |> DateTime.to_date()
{:ok,
socket
|> assign(nav_section: :wishlist)
|> assign(:current_date, current_date)}
end
@impl true
@@ -22,9 +22,13 @@
{@record.title}
</h2>
<p class="mt-2 text-sm leading-5 text-zinc-500 dark:text-zinc-400">
{Records.Record.format_release(@record.release)} · {Records.Record.format_long_label(
@record.format
)} · {Records.Record.type_long_label(@record.type)}
{Records.Record.format_release(@record.release)}
<span :if={@current_date && !Records.Record.released?(@record, @current_date)}>
({gettext("Unreleased")})
</span>
· {Records.Record.format_long_label(@record.format)} · {Records.Record.type_long_label(
@record.type
)}
</p>
</div>
<div class="relative flex-none">