AshUi.Phoenix.LiveRender (ash_ui_phoenix v0.1.0)

Copy Markdown View Source

Transport shim: AshUi.Render emits the one render algebra (AshUi.Rendered/AshUi.Comprehension, LiveView-shape by contract); this module converts it — lazily, closure by closure — into the Phoenix.LiveView.Rendered structs LiveView's own diff engine consumes. No emission logic lives here.

Summary

Functions

Build the root Phoenix.LiveView.Rendered for record from its resource's patch table. Same contract as AshUi.Render.build/3, pinned to the Phoenix render target.

Lazy conversion of the core render algebra into LiveView structs: dynamics stay closures, so the cost is O(invoked region) per render. Public so oracle tests can feed core-emitted structures through the native LiveView diff engine.

Functions

build(record, changed, opts \\ [])

@spec build(struct(), :all | MapSet.t(), keyword()) :: Phoenix.LiveView.Rendered.t()

Build the root Phoenix.LiveView.Rendered for record from its resource's patch table. Same contract as AshUi.Render.build/3, pinned to the Phoenix render target.

to_live(rendered)

Lazy conversion of the core render algebra into LiveView structs: dynamics stay closures, so the cost is O(invoked region) per render. Public so oracle tests can feed core-emitted structures through the native LiveView diff engine.