Packages
corex
0.1.1
0.1.2
0.1.1
0.1.0
0.1.0-rc.1
0.1.0-rc.0
0.1.0-beta.5
0.1.0-beta.4
0.1.0-beta.3
0.1.0-beta.2
0.1.0-beta.1
0.1.0-alpha.33
0.1.0-alpha.32
0.1.0-alpha.31
0.1.0-alpha.30
0.1.0-alpha.29
0.1.0-alpha.28
0.1.0-alpha.27
0.1.0-alpha.26
0.1.0-alpha.25
0.1.0-alpha.24
0.1.0-alpha.23
0.1.0-alpha.22
0.1.0-alpha.21
0.1.0-alpha.20
0.1.0-alpha.19
0.1.0-alpha.18
0.1.0-alpha.17
0.1.0-alpha.16
0.1.0-alpha.15
0.1.0-alpha.14
0.1.0-alpha.13
0.1.0-alpha.12
0.1.0-alpha.11
0.1.0-alpha.10
0.1.0-alpha.9
0.1.0-alpha.8
0.1.0-alpha.7
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
Accessible and unstyled UI components library written in Elixir and TypeScript that integrates Zag.js state machines into the Phoenix Framework.
Current section
Files
Jump to
Current section
Files
lib/components/tree_view/api.ex
defmodule Corex.TreeView.Api do
@moduledoc false
alias Corex.Api.RespondTo
alias Phoenix.LiveView
alias Phoenix.LiveView.JS
import Corex.Helpers, only: [validate_value!: 1, respond_to_fields: 1]
def set_expanded_value(tree_view_id, value) when is_binary(tree_view_id) do
JS.dispatch("corex:tree-view:set-expanded-value",
to: "##{tree_view_id}",
detail: %{value: validate_value!(value)},
bubbles: false
)
end
def set_selected_value(tree_view_id, value) when is_binary(tree_view_id) do
JS.dispatch("corex:tree-view:set-selected-value",
to: "##{tree_view_id}",
detail: %{value: validate_value!(value)},
bubbles: false
)
end
def set_expanded_value(socket, tree_view_id, value)
when is_struct(socket, Phoenix.LiveView.Socket) and is_binary(tree_view_id) do
RespondTo.push_set_value(
socket,
"tree_view_set_expanded_value",
tree_view_id,
validate_value!(value)
)
end
def set_selected_value(socket, tree_view_id, value)
when is_struct(socket, Phoenix.LiveView.Socket) and is_binary(tree_view_id) do
RespondTo.push_set_value(
socket,
"tree_view_set_selected_value",
tree_view_id,
validate_value!(value)
)
end
def value(tree_view_id, opts) when is_binary(tree_view_id) and is_list(opts) do
JS.dispatch("corex:tree-view:value",
to: "##{tree_view_id}",
detail: respond_to_fields(opts),
bubbles: false
)
end
def value(tree_view_id) when is_binary(tree_view_id), do: value(tree_view_id, [])
def value(socket, tree_view_id, opts \\ [])
when is_struct(socket, Phoenix.LiveView.Socket) and is_binary(tree_view_id) and
is_list(opts) do
LiveView.push_event(
socket,
"tree_view_value",
Map.merge(%{id: tree_view_id}, respond_to_fields(opts))
)
end
def expanded_value(tree_view_id, opts) when is_binary(tree_view_id) and is_list(opts) do
JS.dispatch("corex:tree-view:expanded-value",
to: "##{tree_view_id}",
detail: respond_to_fields(opts),
bubbles: false
)
end
def expanded_value(tree_view_id) when is_binary(tree_view_id),
do: expanded_value(tree_view_id, [])
def expanded_value(socket, tree_view_id, opts \\ [])
when is_struct(socket, Phoenix.LiveView.Socket) and is_binary(tree_view_id) and
is_list(opts) do
LiveView.push_event(
socket,
"tree_view_expanded_value",
Map.merge(%{id: tree_view_id}, respond_to_fields(opts))
)
end
end