defmodule MoonWeb.Examples.Design.SearchExample.Custom do @moduledoc false # use Moon.StatefulComponent use MoonWeb, :stateful_component use MoonWeb, :example alias Moon.Design.Search alias Moon.Icon alias Moon.Design.Dropdown import Moon.Helpers.Form, only: [filter_options: 2] prop(options, :list, default: MoonWeb.Schema.Link.titles()) prop(filter, :string, default: "") def handle_event("change_filter", %{"value" => filter}, socket) do {:noreply, assign(socket, filter: filter)} end def render(assigns) do ~F""" filter_options(@filter)} > <:option :let={option: option}> {option[:key]} """ end def code() do """ alias Moon.Design.Search alias Moon.Icon alias Moon.Design.Dropdown import Moon.Helpers.Form, only: [filter_options: 2] prop(options, :list, default: MoonWeb.Schema.Link.titles()) prop(filter, :string, default: "") def handle_event("change_filter", %{"value" => filter}, socket) do {:noreply, assign(socket, filter: filter)} end def render(assigns) do ~F\""" filter_options(@filter)} > <:option :let={option: option}> {option[:key]} \""" end """ end end