Structured representation of a UI node in the Dala framework.
Using a struct instead of raw maps provides:
- Compile-time verification of field names
- Default values for optional fields
- Clear documentation of the node structure
Fields
:id— Stable identity for diffing (required for proper reconciliation):type— Atom indicating the component type (:text,:button,:column, etc.):props— Map of component-specific properties:children— List of childDala.Nodestructs
Example
%Dala.Node{
id: "root",
type: :column,
props: %{padding: :md},
children: [
%Dala.Node{id: "t1", type: :text, props: %{text: "Hello"}},
%Dala.Node{id: "b1", type: :button, props: %{title: "Click"}}
]
}
Summary
Types
Functions
Create a new Node struct from a map.
Converts the map representation (used by Dala.UI functions) to a proper Node struct. Generates an ID if not present.
Example
Dala.Node.from_map(%{
type: :text,
props: %{text: "Hello"},
children: []
}, "parent:0")
Convert a Node struct back to a map representation.
This is used before sending to the renderer/native side.