diff --git a/lib/music_library_web/components/scrobble_components.ex b/lib/music_library_web/components/scrobble_components.ex
index 29998004..25160296 100644
--- a/lib/music_library_web/components/scrobble_components.ex
+++ b/lib/music_library_web/components/scrobble_components.ex
@@ -32,7 +32,7 @@ defmodule MusicLibraryWeb.ScrobbleComponents do
def track_metadata_tooltip(assigns) do
~H"""
- <.tooltip>
+ <.tooltip class="bg-white dark:bg-zinc-800 text-zinc-900 dark:text-zinc-100 shadow-lg ring-1 ring-zinc-200 dark:ring-zinc-700">
<.icon
name="hero-information-circle"
class="h-5 w-5 text-zinc-500 dark:text-zinc-400 cursor-pointer"
@@ -40,46 +40,25 @@ defmodule MusicLibraryWeb.ScrobbleComponents do
data-slot="icon"
/>
<:content>
-
-
-
- {gettext("Track ID:")}
- -
-
- {@track.musicbrainz_id || gettext("Unknown")}
-
- <.copy_to_clipboard
- :if={@track.musicbrainz_id not in ["", nil]}
- target_id={"tooltip-track-#{@track.scrobbled_at_uts}"}
- label={gettext("Copy track MusicBrainz ID to clipboard")}
- />
-
-
-
-
- {gettext("Album ID:")}
- -
-
- {@track.album.musicbrainz_id || gettext("Unknown")}
-
- <.copy_to_clipboard
- :if={@track.album.musicbrainz_id not in ["", nil]}
- target_id={"tooltip-track-album-#{@track.scrobbled_at_uts}"}
- label={gettext("Copy album MusicBrainz ID to clipboard")}
- />
-
-
-
-
- {gettext("Artist ID:")}
- -
-
- {@track.artist.musicbrainz_id || gettext("Unknown")}
-
- <.copy_to_clipboard
- :if={@track.artist.musicbrainz_id not in ["", nil]}
- target_id={"tooltip-track-artist-#{@track.scrobbled_at_uts}"}
- label={gettext("Copy artist MusicBrainz ID to clipboard")}
- />
-
-
+
+ <.metadata_row
+ label={gettext("Track ID")}
+ value={@track.musicbrainz_id}
+ id_prefix={"tooltip-track-#{@track.scrobbled_at_uts}"}
+ copy_label={gettext("Copy track MusicBrainz ID to clipboard")}
+ />
+ <.metadata_row
+ label={gettext("Album ID")}
+ value={@track.album.musicbrainz_id}
+ id_prefix={"tooltip-track-album-#{@track.scrobbled_at_uts}"}
+ copy_label={gettext("Copy album MusicBrainz ID to clipboard")}
+ />
+ <.metadata_row
+ label={gettext("Artist ID")}
+ value={@track.artist.musicbrainz_id}
+ id_prefix={"tooltip-track-artist-#{@track.scrobbled_at_uts}"}
+ copy_label={gettext("Copy artist MusicBrainz ID to clipboard")}
+ />
@@ -90,7 +69,7 @@ defmodule MusicLibraryWeb.ScrobbleComponents do
def album_metadata_tooltip(assigns) do
~H"""
- <.tooltip>
+ <.tooltip class="bg-white dark:bg-zinc-800 text-zinc-900 dark:text-zinc-100 shadow-lg ring-1 ring-zinc-200 dark:ring-zinc-700">
<.icon
name="hero-information-circle"
class="h-5 w-5 text-zinc-500 dark:text-zinc-400 cursor-pointer"
@@ -98,33 +77,19 @@ defmodule MusicLibraryWeb.ScrobbleComponents do
data-slot="icon"
/>
<:content>
-
-
-
- {gettext("Album ID:")}
- -
-
- {@album.metadata.musicbrainz_id || gettext("Unknown")}
-
- <.copy_to_clipboard
- :if={@album.metadata.musicbrainz_id not in ["", nil]}
- target_id={"tooltip-album-#{@album.scrobbled_at_uts}"}
- label={gettext("Copy album MusicBrainz ID to clipboard")}
- />
-
-
-
-
- {gettext("Artist ID:")}
- -
-
- {@album.artist.musicbrainz_id || gettext("Unknown")}
-
- <.copy_to_clipboard
- :if={@album.artist.musicbrainz_id not in ["", nil]}
- target_id={"tooltip-artist-#{@album.scrobbled_at_uts}"}
- label={gettext("Copy artist MusicBrainz ID to clipboard")}
- />
-
-
+
+ <.metadata_row
+ label={gettext("Album ID")}
+ value={@album.metadata.musicbrainz_id}
+ id_prefix={"tooltip-album-#{@album.scrobbled_at_uts}"}
+ copy_label={gettext("Copy album MusicBrainz ID to clipboard")}
+ />
+ <.metadata_row
+ label={gettext("Artist ID")}
+ value={@album.artist.musicbrainz_id}
+ id_prefix={"tooltip-artist-#{@album.scrobbled_at_uts}"}
+ copy_label={gettext("Copy artist MusicBrainz ID to clipboard")}
+ />
@@ -185,4 +150,38 @@ defmodule MusicLibraryWeb.ScrobbleComponents do
"""
end
+
+ attr :label, :string, required: true
+ attr :value, :string, required: true
+ attr :id_prefix, :string, required: true
+ attr :copy_label, :string, required: true
+
+ defp metadata_row(assigns) do
+ ~H"""
+
+
-
+ {@label}
+
+ -
+
+ {@value || gettext("Unknown")}
+
+ <.copy_to_clipboard
+ :if={@value not in ["", nil]}
+ target_id={@id_prefix}
+ label={@copy_label}
+ />
+
+
+ """
+ end
end
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
index c719a3b0..ad45939b 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -857,16 +857,6 @@ msgstr ""
msgid "All time"
msgstr ""
-#: lib/music_library_web/components/scrobble_components.ex
-#, elixir-autogen, elixir-format
-msgid "Album ID:"
-msgstr ""
-
-#: lib/music_library_web/components/scrobble_components.ex
-#, elixir-autogen, elixir-format
-msgid "Artist ID:"
-msgstr ""
-
#: lib/music_library_web/components/scrobble_components.ex
#, elixir-autogen, elixir-format
msgid "Copy album MusicBrainz ID to clipboard"
@@ -882,11 +872,6 @@ msgstr ""
msgid "Copy track MusicBrainz ID to clipboard"
msgstr ""
-#: lib/music_library_web/components/scrobble_components.ex
-#, elixir-autogen, elixir-format
-msgid "Track ID:"
-msgstr ""
-
#: lib/music_library_web/live/scrobble_rules_live/form.ex
#, elixir-autogen, elixir-format
msgid "Add a description to help identify this rule"
@@ -2336,3 +2321,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Untitled"
msgstr ""
+
+#: lib/music_library_web/components/scrobble_components.ex
+#, elixir-autogen, elixir-format
+msgid "Album ID"
+msgstr ""
+
+#: lib/music_library_web/components/scrobble_components.ex
+#, elixir-autogen, elixir-format
+msgid "Artist ID"
+msgstr ""
+
+#: lib/music_library_web/components/scrobble_components.ex
+#, elixir-autogen, elixir-format
+msgid "Track ID"
+msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index 910dae3d..0b8df7e4 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -857,16 +857,6 @@ msgstr ""
msgid "All time"
msgstr ""
-#: lib/music_library_web/components/scrobble_components.ex
-#, elixir-autogen, elixir-format, fuzzy
-msgid "Album ID:"
-msgstr ""
-
-#: lib/music_library_web/components/scrobble_components.ex
-#, elixir-autogen, elixir-format
-msgid "Artist ID:"
-msgstr ""
-
#: lib/music_library_web/components/scrobble_components.ex
#, elixir-autogen, elixir-format, fuzzy
msgid "Copy album MusicBrainz ID to clipboard"
@@ -882,11 +872,6 @@ msgstr ""
msgid "Copy track MusicBrainz ID to clipboard"
msgstr ""
-#: lib/music_library_web/components/scrobble_components.ex
-#, elixir-autogen, elixir-format
-msgid "Track ID:"
-msgstr ""
-
#: lib/music_library_web/live/scrobble_rules_live/form.ex
#, elixir-autogen, elixir-format
msgid "Add a description to help identify this rule"
@@ -2336,3 +2321,18 @@ msgstr ""
#, elixir-autogen, elixir-format
msgid "Untitled"
msgstr ""
+
+#: lib/music_library_web/components/scrobble_components.ex
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Album ID"
+msgstr ""
+
+#: lib/music_library_web/components/scrobble_components.ex
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Artist ID"
+msgstr ""
+
+#: lib/music_library_web/components/scrobble_components.ex
+#, elixir-autogen, elixir-format, fuzzy
+msgid "Track ID"
+msgstr ""