From d38fcd6feeae8c1e77c4cb15d5d19188317803a8 Mon Sep 17 00:00:00 2001 From: Claudio Ortolina Date: Wed, 21 May 2025 22:35:45 +0100 Subject: [PATCH] Account for no artist country or area --- lib/music_library/records/artist_info.ex | 4 +++- lib/music_library_web/components/record_components.ex | 8 ++++---- lib/music_library_web/live/artist_live/show.ex | 4 ++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/lib/music_library/records/artist_info.ex b/lib/music_library/records/artist_info.ex index 082c8c3f..dc3eb069 100644 --- a/lib/music_library/records/artist_info.ex +++ b/lib/music_library/records/artist_info.ex @@ -38,9 +38,11 @@ defmodule MusicLibrary.Records.ArtistInfo do nil -> artist_info.musicbrainz_data["country"] end - %{name: area["name"], code: keep_alpha_2(country_code)} + %{name: area["name"] || "World", code: keep_alpha_2(country_code) || "XW"} end + defp keep_alpha_2(nil), do: nil + defp keep_alpha_2(country_code) do String.slice(country_code, 0..1) end diff --git a/lib/music_library_web/components/record_components.ex b/lib/music_library_web/components/record_components.ex index 282386f7..ecd0385c 100644 --- a/lib/music_library_web/components/record_components.ex +++ b/lib/music_library_web/components/record_components.ex @@ -313,11 +313,11 @@ defmodule MusicLibraryWeb.RecordComponents do |> Enum.join(" ") end - defp country_label(nil), do: nil - defp country_label("XW"), do: "🌍" - defp country_label("XE"), do: "🇪🇺" + def country_label(nil), do: nil + def country_label("XW"), do: "🌍" + def country_label("XE"), do: "🇪🇺" - defp country_label(country_code) do + def country_label(country_code) do if flagmoji = Flagmojis.by_iso(country_code) do flagmoji.emoji else diff --git a/lib/music_library_web/live/artist_live/show.ex b/lib/music_library_web/live/artist_live/show.ex index 454c6509..95925c2c 100644 --- a/lib/music_library_web/live/artist_live/show.ex +++ b/lib/music_library_web/live/artist_live/show.ex @@ -5,13 +5,13 @@ defmodule MusicLibraryWeb.ArtistLive.Show do alias MusicLibrary.Records.ArtistInfo import MusicLibraryWeb.RecordComponents, - only: [record_grid: 1, toggle_actions_menu: 1, close_actions_menu: 1] + only: [record_grid: 1, toggle_actions_menu: 1, close_actions_menu: 1, country_label: 1] attr :country, :map, required: true defp country_flag(assigns) do ~H""" - {Flagmojis.by_iso(@country.code).emoji} + {country_label(@country.code)} {@country.name} """ end