From 0eaaab7d001a16c39b778777ea2a948c727460be Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Sun, 1 Dec 2024 22:31:10 +0000 Subject: [PATCH] Not working --- .../live/artist_live/show.ex | 32 +++++++++++++++++++ .../live/artist_live/show.html.heex | 8 +++++ lib/music_library_web/router.ex | 2 ++ 3 files changed, 42 insertions(+) create mode 100644 lib/music_library_web/live/artist_live/show.ex create mode 100644 lib/music_library_web/live/artist_live/show.html.heex diff --git a/lib/music_library_web/live/artist_live/show.ex b/lib/music_library_web/live/artist_live/show.ex new file mode 100644 index 00000000..8bb98f10 --- /dev/null +++ b/lib/music_library_web/live/artist_live/show.ex @@ -0,0 +1,32 @@ +defmodule MusicLibraryWeb.ArtistLive.Show do + use MusicLibraryWeb, :live_view + + alias MusicLibrary.Records + + @impl true + def mount(_params, _session, socket) do + {:ok, socket} + end + + @impl true + def handle_params(%{"musicbrainz_id" => musicbrainz_id}, _, socket) do + {:ok, artist} = Records.get_artist(musicbrainz_id) + + {:noreply, + socket + |> assign(:nav_section, :artists) + |> assign(:artist, artist) + |> assign(:page_title, page_title(socket.assigns.live_action, artist))} + end + + defp page_title(:show, artist) do + Enum.join( + [ + artist.name, + "ยท", + gettext("Details") + ], + " " + ) + end +end diff --git a/lib/music_library_web/live/artist_live/show.html.heex b/lib/music_library_web/live/artist_live/show.html.heex new file mode 100644 index 00000000..206e477a --- /dev/null +++ b/lib/music_library_web/live/artist_live/show.html.heex @@ -0,0 +1,8 @@ +
+

+ <%= @artist.name %> +

+

+ <%= raw(@artist.bio) || gettext("Biography not available") %> +

+
diff --git a/lib/music_library_web/router.ex b/lib/music_library_web/router.ex index 59fac56d..ebebb304 100644 --- a/lib/music_library_web/router.ex +++ b/lib/music_library_web/router.ex @@ -45,6 +45,8 @@ defmodule MusicLibraryWeb.Router do live "/wishlist/:id", WishlistLive.Show, :show live "/wishlist/:id/show/edit", WishlistLive.Show, :edit + + live "/artists/:musicbrainz_id", ArtistLive.Show, :show end end