Account for no artist country or area

This commit is contained in:
Claudio Ortolina
2025-05-21 22:35:45 +01:00
parent cd3448cd64
commit d38fcd6fee
3 changed files with 9 additions and 7 deletions
+3 -1
View File
@@ -38,9 +38,11 @@ defmodule MusicLibrary.Records.ArtistInfo do
nil -> artist_info.musicbrainz_data["country"] nil -> artist_info.musicbrainz_data["country"]
end end
%{name: area["name"], code: keep_alpha_2(country_code)} %{name: area["name"] || "World", code: keep_alpha_2(country_code) || "XW"}
end end
defp keep_alpha_2(nil), do: nil
defp keep_alpha_2(country_code) do defp keep_alpha_2(country_code) do
String.slice(country_code, 0..1) String.slice(country_code, 0..1)
end end
@@ -313,11 +313,11 @@ defmodule MusicLibraryWeb.RecordComponents do
|> Enum.join(" ") |> Enum.join(" ")
end end
defp country_label(nil), do: nil def country_label(nil), do: nil
defp country_label("XW"), do: "🌍" def country_label("XW"), do: "🌍"
defp country_label("XE"), 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 if flagmoji = Flagmojis.by_iso(country_code) do
flagmoji.emoji flagmoji.emoji
else else
@@ -5,13 +5,13 @@ defmodule MusicLibraryWeb.ArtistLive.Show do
alias MusicLibrary.Records.ArtistInfo alias MusicLibrary.Records.ArtistInfo
import MusicLibraryWeb.RecordComponents, 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 attr :country, :map, required: true
defp country_flag(assigns) do defp country_flag(assigns) do
~H""" ~H"""
<span>{Flagmojis.by_iso(@country.code).emoji}</span> <span>{country_label(@country.code)}</span>
<span class="sr-only">{@country.name}</span> <span class="sr-only">{@country.name}</span>
""" """
end end