fix: keep search term on refresh and enter

This commit is contained in:
carla 2025-10-23 15:44:08 +02:00
parent 580d78f18d
commit 963b5d259c

View file

@ -8,10 +8,10 @@ defmodule MvWeb.Components.SearchBarComponent do
use MvWeb, :live_component use MvWeb, :live_component
@impl true @impl true
def update(_assigns, socket) do def update(%{query: query}, socket) do
socket = socket =
socket socket
|> assign_new(:query, fn -> "" end) |> assign_new(:query, fn -> query || "" end)
|> assign_new(:placeholder, fn -> gettext("Search...") end) |> assign_new(:placeholder, fn -> gettext("Search...") end)
{:ok, socket} {:ok, socket}
@ -20,7 +20,7 @@ defmodule MvWeb.Components.SearchBarComponent do
@impl true @impl true
def render(assigns) do def render(assigns) do
~H""" ~H"""
<form phx-change="search" phx-target={@myself} class="flex" role="search" aria-label="Search"> <form phx-submit="search" phx-target={@myself} class="flex" role="search" aria-label="Search">
<label class="input"> <label class="input">
<svg <svg
class="h-[1em] opacity-50" class="h-[1em] opacity-50"
@ -44,6 +44,8 @@ defmodule MvWeb.Components.SearchBarComponent do
placeholder={@placeholder} placeholder={@placeholder}
value={@query} value={@query}
name="query" name="query"
phx-change="search"
phx-target={@myself}
phx-debounce="300" phx-debounce="300"
/> />
</label> </label>