diff --git a/lib/music_library/records/record.ex b/lib/music_library/records/record.ex index 10606639..3b5f4619 100644 --- a/lib/music_library/records/record.ex +++ b/lib/music_library/records/record.ex @@ -30,6 +30,10 @@ defmodule MusicLibrary.Records.Record do timestamps(type: :utc_datetime) end + def artist_names(record) do + Enum.map_join(record.artists, ", ", fn artist -> artist.name end) + end + def formats, do: @formats def types, do: @types diff --git a/lib/music_library_web/components/form_component.ex b/lib/music_library_web/components/form_component.ex index 1ea361c2..f6029caa 100644 --- a/lib/music_library_web/components/form_component.ex +++ b/lib/music_library_web/components/form_component.ex @@ -3,7 +3,7 @@ defmodule MusicLibraryWeb.FormComponent do import MusicLibraryWeb.RecordComponents, only: [format_label: 1, type_label: 1] alias MusicLibrary.Records - alias MusicLibrary.Records.Cover + alias MusicLibrary.Records.{Cover, Record} @impl true def mount(socket) do @@ -18,7 +18,7 @@ defmodule MusicLibraryWeb.FormComponent do

- {Enum.map(@record.artists, & &1.name) |> Enum.join(", ")} + {Record.artist_names(@record)}

{@record.title} diff --git a/lib/music_library_web/live/collection_live/show.ex b/lib/music_library_web/live/collection_live/show.ex index 80124444..6e6d42f1 100644 --- a/lib/music_library_web/live/collection_live/show.ex +++ b/lib/music_library_web/live/collection_live/show.ex @@ -116,11 +116,9 @@ defmodule MusicLibraryWeb.CollectionLive.Show do end def page_title(:show, record) do - artist_names = Enum.map(record.artists, & &1.name) - Enum.join( [ - Enum.join(artist_names, ", "), + Records.Record.artist_names(record), "-", record.title, "·", @@ -133,11 +131,9 @@ defmodule MusicLibraryWeb.CollectionLive.Show do end def page_title(action, record) do - artist_names = Enum.map(record.artists, & &1.name) - Enum.join( [ - Enum.join(artist_names, ", "), + Records.Record.artist_names(record), "-", record.title, "·", diff --git a/lib/music_library_web/live/wishlist_live/show.ex b/lib/music_library_web/live/wishlist_live/show.ex index d6fb0204..4cd84643 100644 --- a/lib/music_library_web/live/wishlist_live/show.ex +++ b/lib/music_library_web/live/wishlist_live/show.ex @@ -124,11 +124,9 @@ defmodule MusicLibraryWeb.WishlistLive.Show do end def page_title(action, record) do - artist_names = Enum.map(record.artists, & &1.name) - Enum.join( [ - Enum.join(artist_names, ", "), + Records.Record.artist_names(record), "-", record.title, "·",