Show if a wishlisted album is unreleased
This commit is contained in:
@@ -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">
|
||||
|
||||
Reference in New Issue
Block a user