defmodule FloUI.DropdownController do
import Scenic.Primitives, only: [text: 3]
alias Scenic.Graph
alias Scenic.Primitive
def on_open_change(scene) do
graph =
scene.assigns.graph
|> Graph.modify(:scroll_container, &Primitive.put_style(&1, :hidden, not scene.assigns.open?))
|> Graph.modify(:dropdown_bg, &Primitive.put_style(&1, :hidden, not scene.assigns.open?))
|> Graph.modify(:border_cover, &Primitive.put_style(&1, :hidden, not scene.assigns.open?))
|> Graph.modify(:clickout, &Primitive.put_style(&1, :hidden, not scene.assigns.open?))
|> Graph.modify(:icon, &Primitive.put_style(&1, :rotate, if(not scene.assigns.open?, do: 0, else: :math.pi())))
Scenic.Scene.assign(scene, graph: graph)
end
def on_selected_change(scene) do
graph =
scene.assigns.graph
|> Graph.modify(:selected_label, &text(&1, scene.assigns.selected_label, []))
Scenic.Scene.assign(scene, graph: graph)
end
end