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