From 55538903d490b47259da7c0e8939693917313cbb Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Thu, 20 Feb 2025 09:04:47 +0000 Subject: [PATCH] Consolidate record components into one module --- .../components/record_components.ex | 56 ++++++++++++++++- .../live/artist_live/record_components.ex | 60 ------------------- .../live/artist_live/show.ex | 2 +- .../live/artist_live/show.html.heex | 4 +- priv/gettext/default.pot | 28 ++++----- 5 files changed, 72 insertions(+), 78 deletions(-) delete mode 100644 lib/music_library_web/live/artist_live/record_components.ex diff --git a/lib/music_library_web/components/record_components.ex b/lib/music_library_web/components/record_components.ex index ebb53ca8..997d968e 100644 --- a/lib/music_library_web/components/record_components.ex +++ b/lib/music_library_web/components/record_components.ex @@ -1,8 +1,8 @@ defmodule MusicLibraryWeb.RecordComponents do use MusicLibraryWeb, :html - alias Phoenix.LiveView.JS alias MusicLibrary.Records + alias Phoenix.LiveView.JS attr :record_show_path, :any, required: true attr :record_edit_path, :any, required: true @@ -208,6 +208,60 @@ defmodule MusicLibraryWeb.RecordComponents do """ end + attr :records, :list, required: true + attr :records_count, :integer, required: true + attr :title, :string, required: true + attr :id, :string, required: true + attr :record_path, :any, required: true + + def record_grid(assigns) do + ~H""" +
+
+

+ {@title} +

+ + {ngettext("1 record", "%{count} records", @records_count)} + +
+ <%!-- TODO: replace with OSS version --%> + +
+ """ + end + def format_label(:cd), do: gettext("CD") def format_label(:backup), do: gettext("Backup") def format_label(:vinyl), do: gettext("Vinyl") diff --git a/lib/music_library_web/live/artist_live/record_components.ex b/lib/music_library_web/live/artist_live/record_components.ex deleted file mode 100644 index d9eb04ce..00000000 --- a/lib/music_library_web/live/artist_live/record_components.ex +++ /dev/null @@ -1,60 +0,0 @@ -defmodule MusicLibraryWeb.ArtistLive.RecordComponents do - use MusicLibraryWeb, :live_component - - import MusicLibraryWeb.RecordComponents, only: [format_label: 1, type_label: 1] - alias MusicLibrary.Records - - attr :records, :list, required: true - attr :records_count, :integer, required: true - attr :title, :string, required: true - attr :id, :string, required: true - attr :record_path, :any, required: true - - def grid(assigns) do - ~H""" -
-
-

- {@title} -

- - {ngettext("1 record", "%{count} records", @records_count)} - -
- <%!-- TODO: replace with OSS version --%> - -
- """ - end -end diff --git a/lib/music_library_web/live/artist_live/show.ex b/lib/music_library_web/live/artist_live/show.ex index 8fe2a179..96214d3b 100644 --- a/lib/music_library_web/live/artist_live/show.ex +++ b/lib/music_library_web/live/artist_live/show.ex @@ -1,8 +1,8 @@ defmodule MusicLibraryWeb.ArtistLive.Show do use MusicLibraryWeb, :live_view - import MusicLibraryWeb.ArtistLive.RecordComponents alias MusicLibrary.{Artists, Records} + import MusicLibraryWeb.RecordComponents, only: [record_grid: 1] @impl true def mount(_params, _session, socket) do diff --git a/lib/music_library_web/live/artist_live/show.html.heex b/lib/music_library_web/live/artist_live/show.html.heex index 928f1d0a..dce72ec9 100644 --- a/lib/music_library_web/live/artist_live/show.html.heex +++ b/lib/music_library_web/live/artist_live/show.html.heex @@ -62,7 +62,7 @@ - <.grid + <.record_grid :if={@collection_records_count > 0} title={gettext("Collection")} id="collection" @@ -71,7 +71,7 @@ record_path={fn record -> ~p"/collection/#{record}" end} /> - <.grid + <.record_grid :if={@wishlist_records_count > 0} title={gettext("Wishlist")} id="wishlist" diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index b44ed76f..6ca5d0ea 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -431,7 +431,7 @@ msgstr "" msgid "Dev dashboard" msgstr "" -#: lib/music_library_web/live/artist_live/record_components.ex:43 +#: lib/music_library_web/components/record_components.ex:247 #, elixir-autogen, elixir-format msgid "View details" msgstr "" @@ -511,7 +511,7 @@ msgstr "" msgid "On Tour" msgstr "" -#: lib/music_library_web/live/artist_live/record_components.ex:21 +#: lib/music_library_web/components/record_components.ex:225 #, elixir-autogen, elixir-format msgid "1 record" msgid_plural "%{count} records" @@ -543,63 +543,63 @@ msgstr "" msgid "Unreleased" msgstr "" -#: lib/music_library_web/components/record_components.ex:218 +#: lib/music_library_web/components/record_components.ex:272 #, elixir-autogen, elixir-format msgid "Album" msgstr "" #: lib/music_library_web/components/layouts/app.html.heex:38 -#: lib/music_library_web/components/record_components.ex:212 +#: lib/music_library_web/components/record_components.ex:266 #, elixir-autogen, elixir-format msgid "Backup" msgstr "" -#: lib/music_library_web/components/record_components.ex:214 +#: lib/music_library_web/components/record_components.ex:268 #, elixir-autogen, elixir-format msgid "Blu-ray" msgstr "" -#: lib/music_library_web/components/record_components.ex:211 +#: lib/music_library_web/components/record_components.ex:265 #, elixir-autogen, elixir-format msgid "CD" msgstr "" -#: lib/music_library_web/components/record_components.ex:221 +#: lib/music_library_web/components/record_components.ex:275 #, elixir-autogen, elixir-format msgid "Comp" msgstr "" -#: lib/music_library_web/components/record_components.ex:215 +#: lib/music_library_web/components/record_components.ex:269 #, elixir-autogen, elixir-format msgid "DVD" msgstr "" -#: lib/music_library_web/components/record_components.ex:219 +#: lib/music_library_web/components/record_components.ex:273 #, elixir-autogen, elixir-format msgid "EP" msgstr "" -#: lib/music_library_web/components/record_components.ex:220 +#: lib/music_library_web/components/record_components.ex:274 #, elixir-autogen, elixir-format msgid "Live" msgstr "" -#: lib/music_library_web/components/record_components.ex:216 +#: lib/music_library_web/components/record_components.ex:270 #, elixir-autogen, elixir-format msgid "Multi" msgstr "" -#: lib/music_library_web/components/record_components.ex:223 +#: lib/music_library_web/components/record_components.ex:277 #, elixir-autogen, elixir-format msgid "Other" msgstr "" -#: lib/music_library_web/components/record_components.ex:222 +#: lib/music_library_web/components/record_components.ex:276 #, elixir-autogen, elixir-format msgid "Single" msgstr "" -#: lib/music_library_web/components/record_components.ex:213 +#: lib/music_library_web/components/record_components.ex:267 #, elixir-autogen, elixir-format msgid "Vinyl" msgstr ""