defmodule Moon.Components.SelectTrigger do @moduledoc false use Moon.StatelessComponent alias Moon.Icons.{ControlsChevronDown, ControlsChevronUp} alias Phoenix.LiveView.JS prop(id, :string) prop(placeholder, :string, default: "Choose") prop(selected_option, :any) prop(size, :string, values: ~w(md lg xl), default: "md") prop(state, :string, values: ~w(active error disabled)) prop(class, :string) prop(on_click, :event) slot(default) def render(assigns) do ~F""" """ end def toggle_icons(js, id) do js |> JS.toggle(to: "##{id}-trigger-chevron-up", display: "flex") |> JS.toggle(to: "##{id}-trigger-chevron-down", display: "flex") end def reset_icons(js, id) do js |> JS.hide(to: "##{id}-trigger-chevron-up") |> JS.show(to: "##{id}-trigger-chevron-down", display: "flex") end end