Packages
surface
0.8.4
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/components/dynamic/live_component.ex
defmodule Surface.Components.Dynamic.LiveComponent do
@moduledoc """
A built-in component that allows users to inject dynamic live components into
a Surface template.
"""
use Surface.LiveComponent
alias Surface.AST
@doc """
The module of the component
"""
prop module, :module, required: true
@doc """
The default slot
"""
slot default
@doc false
def transform(node) do
%AST.Component{props: props, directives: directives, slot_entries: slot_entries, meta: meta} = node
{%{module: mod}, other_props} = AST.pop_attributes_values_as_map(props, [:module])
%AST.Component{
module: mod,
type: :dynamic_live,
props: other_props,
directives: directives,
slot_entries: slot_entries,
meta: meta
}
end
def render(assigns), do: ~F[<div/>]
end