Remove custom debouncing

Search is already debounced via phx-debounce, and doesn't need extra
handling via `handle_info` (which doesn't really help anyway - Claude
added it without thinking it through).
This commit is contained in:
Claudio Ortolina
2025-07-06 10:01:29 +01:00
parent 0d855167ff
commit c3a4eb56d1
@@ -28,17 +28,28 @@ defmodule MusicLibraryWeb.UniversalSearchLive.Index do
@impl true
def handle_event("search", %{"query" => query}, socket) do
socket = assign(socket, :search_query, query)
case String.trim(query) do
"" ->
{:noreply,
socket
|> assign(:search_query, "")
|> reset()}
_query ->
send(self(), {:perform_search, query})
{:noreply, socket}
query ->
search_results = Search.universal_search(query, limit: 5)
search_counts = Search.search_counts(query)
total_results =
length(search_results.collection) +
length(search_results.wishlist) +
length(search_results.artists)
{:noreply,
socket
|> assign(:search_query, query)
|> assign(:search_results, search_results)
|> assign(:search_counts, search_counts)
|> assign(:total_results, total_results)}
end
end
@@ -104,26 +115,4 @@ defmodule MusicLibraryWeb.UniversalSearchLive.Index do
|> 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)
if query == socket.assigns.search_query do
search_results = Search.universal_search(query, limit: 5)
search_counts = Search.search_counts(query)
total_results =
length(search_results.collection) +
length(search_results.wishlist) +
length(search_results.artists)
{:noreply,
socket
|> assign(:search_results, search_results)
|> assign(:search_counts, search_counts)
|> assign(:total_results, total_results)}
else
{:noreply, socket}
end
end
end