diff --git a/lib/music_library_web/live/universal_search_live/index.ex b/lib/music_library_web/live/universal_search_live/index.ex index ce803f93..d6065ea0 100644 --- a/lib/music_library_web/live/universal_search_live/index.ex +++ b/lib/music_library_web/live/universal_search_live/index.ex @@ -9,11 +9,8 @@ defmodule MusicLibraryWeb.UniversalSearchLive.Index do def mount(_params, _session, socket) do {:ok, socket - |> assign(:search_query, "") - |> assign(:search_results, %{collection: [], wishlist: [], artists: []}) - |> assign(:search_counts, %{collection_count: 0, wishlist_count: 0, artists_count: 0}) |> assign(:show_modal, false) - |> assign(:total_results, 0)} + |> reset()} end @impl true @@ -26,10 +23,7 @@ defmodule MusicLibraryWeb.UniversalSearchLive.Index do {:noreply, socket |> assign(:show_modal, false) - |> assign(:search_query, "") - |> assign(:search_results, %{collection: [], wishlist: [], artists: []}) - |> assign(:search_counts, %{collection_count: 0, wishlist_count: 0, artists_count: 0}) - |> assign(:total_results, 0)} + |> reset()} end @impl true @@ -40,9 +34,7 @@ defmodule MusicLibraryWeb.UniversalSearchLive.Index do "" -> {:noreply, socket - |> assign(:search_results, %{collection: [], wishlist: [], artists: []}) - |> assign(:search_counts, %{collection_count: 0, wishlist_count: 0, artists_count: 0}) - |> assign(:total_results, 0)} + |> reset()} _query -> send(self(), {:perform_search, query}) @@ -105,6 +97,14 @@ defmodule MusicLibraryWeb.UniversalSearchLive.Index do |> push_navigate(to: ~p"/wishlist?query=#{query}")} end + defp reset(socket) do + socket + |> assign(:search_query, "") + |> assign(:search_results, %{collection: [], wishlist: [], artists: []}) + |> assign(:search_counts, %{collection_count: 0, wishlist_count: 0, artists_count: 0}) + |> assign(:total_results, 0) + end + @impl true def handle_info({:perform_search, query}, socket) do # Only search if the query hasn't changed (debouncing)