Packages
surface
0.1.0-alpha.2
0.12.3
0.12.2
0.12.1
0.12.0
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.1
0.1.0
0.1.0-alpha.2
0.1.0-alpha.1
0.1.0-alpha.0
A component based library for Phoenix LiveView
Current section
Files
Jump to
Current section
Files
lib/surface/translator/live_view_translator.ex
defmodule Surface.Translator.LiveViewTranslator do
@moduledoc false
alias Surface.Translator
import Surface.Translator.ComponentTranslatorHelper
@behaviour Translator
@impl true
def translate(node, caller) do
{mod_str, attributes, _children, %{module: mod, space: space}} = node
# TODO: Validation: only accept `id` and `session` properties
props =
translate_attributes(attributes, mod, mod_str, space, caller, put_default_props: false)
open = [
["<% props = ", props, " %>"],
add_require(mod_str),
add_render_call("live_render", ["@socket", mod_str, "Keyword.new(props)"])
]
{open, [], []}
end
end