Add wrapper for garnish/2 for phx event

This commit is contained in:
Thelonius Kort
2023-01-19 13:52:38 +01:00
parent 078db6e38e
commit c672d6661e
2 changed files with 14 additions and 2 deletions

View File

@ -27,6 +27,16 @@ defmodule Outlook.InternalTree do
|> RawInternalBasic.partition_to_tunits()
end
def add_phx_click_event(tree, opts) do
phx_opts = %{
"phx-click": Keyword.get(opts, :click),
"phx-target": Keyword.get(opts, :target) |> to_string,
"phx-value-nid": fn n -> n.nid end
}
options = Map.put(%{}, Keyword.get(opts, :nodes, :elements), phx_opts)
garnish(tree, options)
end
def garnish(tree, options) do
options = Enum.reduce(
~w(el_ids el_names tu_ids)a,

View File

@ -141,8 +141,10 @@ defmodule OutlookWeb.TranslationLive.FormComponent do
socket
|> assign(
:article_tree,
InternalTree.garnish(translation.article.content,
%{tunits: %{phx: %{click: "select_current_tunit", target: socket.assigns.myself}}}))
InternalTree.add_phx_click_event(translation.article.content,
nodes: :tunits,
click: "select_current_tunit",
target: socket.assigns.myself))
end
defp update_translation_with_current_tunit(socket, nil), do: socket