Move external links component to Core

This commit is contained in:
Claudio Ortolina
2025-10-02 12:36:01 +03:00
parent 23c36e2521
commit dcce3a72c7
4 changed files with 37 additions and 29 deletions
@@ -136,6 +136,40 @@ defmodule MusicLibraryWeb.CoreComponents do
""" """
end end
attr :external_links, :list, default: []
def external_links(assigns) do
~H"""
<dt
:if={@external_links != []}
class="mt-4 text-sm font-medium leading-6 text-zinc-900 dark:text-zinc-400"
>
{gettext("External links")}
</dt>
<dd class="mt-4 space-y-2">
<Fluxon.Components.Button.button
:for={external_link <- @external_links}
href={external_link.url}
target="_blank"
rel="noopener noreferrer"
variant="ghost"
size="sm"
class="ml-2 first:ml-0"
>
<img
class="mr-2"
src={favicon_url(external_link.url)}
alt={external_link.name}
loading="lazy"
/>
<span class="text-sm font-medium text-zinc-900 dark:text-white">
{external_link.name}
</span>
</Fluxon.Components.Button.button>
</dd>
"""
end
def favicon_url(url) do def favicon_url(url) do
uri = URI.parse(url) uri = URI.parse(url)
"https://www.google.com/s2/favicons?domain=#{uri.host}&sz=16" "https://www.google.com/s2/favicons?domain=#{uri.host}&sz=16"
@@ -173,33 +173,7 @@
{render_bio(lastfm_artist_info.bio)} {render_bio(lastfm_artist_info.bio)}
</.sheet> </.sheet>
</.async_result> </.async_result>
<dt <.external_links external_links={@external_links} />
:if={@external_links != []}
class="mt-4 text-sm font-medium leading-6 text-zinc-900 dark:text-zinc-400"
>
{gettext("External links")}
</dt>
<dd class="mt-4 space-y-2">
<.button
:for={external_link <- @external_links}
href={external_link.url}
target="_blank"
rel="noopener noreferrer"
variant="ghost"
size="sm"
class="ml-2 first:ml-0"
>
<img
class="mr-2"
src={favicon_url(external_link.url)}
alt={external_link.name}
loading="lazy"
/>
<span class="text-sm font-medium text-zinc-900 dark:text-white">
{external_link.name}
</span>
</.button>
</dd>
</div> </div>
<div class="md:col-span-7 md:order-1"> <div class="md:col-span-7 md:order-1">
<.record_grid <.record_grid
+1 -1
View File
@@ -1469,7 +1469,7 @@ msgstr ""
msgid "You need to connect your Last.fm account to scrobble. Please set up your Last.fm session key in the settings." msgid "You need to connect your Last.fm account to scrobble. Please set up your Last.fm session key in the settings."
msgstr "" msgstr ""
#: lib/music_library_web/live/artist_live/show.html.heex #: lib/music_library_web/components/core_components.ex
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "External links" msgid "External links"
msgstr "" msgstr ""
+1 -1
View File
@@ -1469,7 +1469,7 @@ msgstr ""
msgid "You need to connect your Last.fm account to scrobble. Please set up your Last.fm session key in the settings." msgid "You need to connect your Last.fm account to scrobble. Please set up your Last.fm session key in the settings."
msgstr "" msgstr ""
#: lib/music_library_web/live/artist_live/show.html.heex #: lib/music_library_web/components/core_components.ex
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "External links" msgid "External links"
msgstr "" msgstr ""