Account for search errors in the add record component
This commit is contained in:
@@ -32,6 +32,9 @@ defmodule MusicLibraryWeb.Components.AddRecord do
|
|||||||
autofocus
|
autofocus
|
||||||
/>
|
/>
|
||||||
</.simple_form>
|
</.simple_form>
|
||||||
|
<.alert :if={@error_message} color="danger" hide_close class="mx-4 mt-4">
|
||||||
|
{@error_message}
|
||||||
|
</.alert>
|
||||||
<ul
|
<ul
|
||||||
id="release-groups"
|
id="release-groups"
|
||||||
phx-update="stream"
|
phx-update="stream"
|
||||||
@@ -127,7 +130,8 @@ defmodule MusicLibraryWeb.Components.AddRecord do
|
|||||||
|> assign(:release_groups_count, 0)
|
|> assign(:release_groups_count, 0)
|
||||||
|> assign(:release_groups_total_count, 0)
|
|> assign(:release_groups_total_count, 0)
|
||||||
|> stream(:release_groups, [])
|
|> stream(:release_groups, [])
|
||||||
|> assign(:loaded_all_results?, false)}
|
|> assign(:loaded_all_results?, false)
|
||||||
|
|> assign(:error_message, nil)}
|
||||||
end
|
end
|
||||||
|
|
||||||
@impl true
|
@impl true
|
||||||
@@ -138,13 +142,21 @@ defmodule MusicLibraryWeb.Components.AddRecord do
|
|||||||
if mb_query == "" do
|
if mb_query == "" do
|
||||||
socket
|
socket
|
||||||
else
|
else
|
||||||
{:ok, result} =
|
case MusicBrainz.search_release_group(mb_query, limit: @batch_size, offset: 0) do
|
||||||
MusicBrainz.search_release_group(mb_query, limit: @batch_size, offset: 0)
|
{:ok, result} ->
|
||||||
|
socket
|
||||||
|
|> assign(:error_message, nil)
|
||||||
|
|> assign(:release_groups_count, Enum.count(result.release_groups))
|
||||||
|
|> assign(:release_groups_total_count, result.total_count)
|
||||||
|
|> stream(:release_groups, result.release_groups, reset: true)
|
||||||
|
|
||||||
socket
|
{:error, _reason} ->
|
||||||
|> assign(:release_groups_count, Enum.count(result.release_groups))
|
assign(
|
||||||
|> assign(:release_groups_total_count, result.total_count)
|
socket,
|
||||||
|> stream(:release_groups, result.release_groups, reset: true)
|
:error_message,
|
||||||
|
gettext("Could not search MusicBrainz. Please try again.")
|
||||||
|
)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
{:ok,
|
{:ok,
|
||||||
@@ -168,16 +180,27 @@ defmodule MusicLibraryWeb.Components.AddRecord do
|
|||||||
end
|
end
|
||||||
|
|
||||||
def handle_event("search", %{"mb_query" => mb_query}, socket) do
|
def handle_event("search", %{"mb_query" => mb_query}, socket) do
|
||||||
{:ok, result} =
|
case MusicBrainz.search_release_group(mb_query, limit: @batch_size, offset: 0) do
|
||||||
MusicBrainz.search_release_group(mb_query, limit: @batch_size, offset: 0)
|
{:ok, result} ->
|
||||||
|
{:noreply,
|
||||||
|
socket
|
||||||
|
|> assign(:error_message, nil)
|
||||||
|
|> assign(:offset, 0)
|
||||||
|
|> assign(:release_groups_count, length(result.release_groups))
|
||||||
|
|> assign(:release_groups_total_count, result.total_count)
|
||||||
|
|> stream(:release_groups, result.release_groups, reset: true)
|
||||||
|
|> assign(:form, to_form(%{"mb_query" => mb_query}))}
|
||||||
|
|
||||||
{:noreply,
|
{:error, _reason} ->
|
||||||
socket
|
{:noreply,
|
||||||
|> assign(:offset, 0)
|
socket
|
||||||
|> assign(:release_groups_count, length(result.release_groups))
|
|> assign(:error_message, gettext("Could not search MusicBrainz. Please try again."))
|
||||||
|> assign(:release_groups_total_count, result.total_count)
|
|> assign(:offset, 0)
|
||||||
|> stream(:release_groups, result.release_groups, reset: true)
|
|> assign(:release_groups_count, 0)
|
||||||
|> assign(:form, to_form(%{"mb_query" => mb_query}))}
|
|> assign(:release_groups_total_count, 0)
|
||||||
|
|> stream(:release_groups, [], reset: true)
|
||||||
|
|> assign(:form, to_form(%{"mb_query" => mb_query}))}
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def handle_event("load-more", _params, socket) do
|
def handle_event("load-more", _params, socket) do
|
||||||
|
|||||||
@@ -2012,3 +2012,8 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format
|
#, elixir-autogen, elixir-format
|
||||||
msgid "Chat about artist"
|
msgid "Chat about artist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/music_library_web/components/add_record.ex
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Could not search MusicBrainz. Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|||||||
@@ -2012,3 +2012,8 @@ msgstr ""
|
|||||||
#, elixir-autogen, elixir-format, fuzzy
|
#, elixir-autogen, elixir-format, fuzzy
|
||||||
msgid "Chat about artist"
|
msgid "Chat about artist"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: lib/music_library_web/components/add_record.ex
|
||||||
|
#, elixir-autogen, elixir-format
|
||||||
|
msgid "Could not search MusicBrainz. Please try again."
|
||||||
|
msgstr ""
|
||||||
|
|||||||
Reference in New Issue
Block a user