{@artist.name}

<.async_result :let={artist_info} assign={@artist_info}> <:loading>
{gettext("Loading play count")} <.icon name="hero-arrow-path" class="-mt-1 h-5 w-5 animate-spin" aria-hidden="true" data-slot="icon" />
<:failed :let={_failure}>
<.icon name="hero-exclamation-triangle" class="-mt-1 mr-1 ml-2 h-5 w-5" aria-hidden="true" data-slot="icon" /> {gettext("Error loading play count")}
<.round_badge :if={artist_info.on_tour} text={gettext("On Tour")} /> 0} class="ml-2 text-sm font-normal text-zinc-700 dark:text-zinc-300 grow text-right" > {ngettext("1 scrobble", "%{count} scrobbles", artist_info.play_count)}
<.async_result :let={artist_info} assign={@artist_info}> <:loading>
{gettext("Loading biography")}
<:failed :let={_failure}>
<.icon name="hero-exclamation-triangle" class="-mt-1 mr-1 h-5 w-5" aria-hidden="true" data-slot="icon" /> {gettext("Error loading biography")}
{gettext("Biography")} {render_bio(@artist_info.result.summary)}
<.async_result :let={similar_artists} assign={@similar_artists}> <:loading>
{gettext("Loading similar artists")}
<:failed :let={_failure}>
<.icon name="hero-exclamation-triangle" class="-mt-1 mr-1 h-5 w-5" aria-hidden="true" data-slot="icon" /> {gettext("Error loading similar artists")}
{gettext("Similar artists")}
  • <.link class="text-zinc-700 hover:text-zinc-500 dark:text-zinc-400 dark:hover:text-zinc-300" patch={~p"/artists/#{artist.musicbrainz_id}"} > {artist.name}
<.record_grid :if={@collection_records_count > 0} title={gettext("Collection")} id="collection" records={@streams.collection_records} records_count={@collection_records_count} record_path={fn record -> ~p"/collection/#{record}" end} /> <.record_grid :if={@wishlist_records_count > 0} title={gettext("Wishlist")} id="wishlist" records={@streams.wishlist_records} records_count={@wishlist_records_count} record_path={fn record -> ~p"/wishlist/#{record}" end} />