defmodule MoonWeb.Components.SearchButton do @moduledoc false use MoonWeb, :stateful_component alias Moon.Design.Search alias Moon.Design.Dropdown import Moon.Helpers.Form, only: [filter_options: 2, input_classes_light: 1] prop(options, :list, default: MoonWeb.Schema.Link.titles()) prop(filter, :string, default: "") prop(on_keyup, :event) def handle_event("change_filter", %{"value" => filter}, socket) do {:noreply, assign(socket, filter: filter)} end def render(assigns) do ~F""" page_to_href() |> filter_options(@filter)} class="focus:bg-heles" > <:trigger :let={is_open: is_open}> """ end defp page_to_href(options) do options |> Enum.map(&Keyword.put(&1, :page, live_path(MoonWeb.Endpoint, &1[:page]))) end end