Aurora. Uix. RendererRegistrar behaviour
(Aurora UIX v0.1.5)
Copy Markdown
Behaviour for a module that registers predefined field renderers.
A registrar exposes a single map of atom => render_function, where each value is an
arity-1 function (assigns) -> Phoenix.LiveView.Rendered.t() — typically a renderer
module's &render/1 capture (see Aurora.Uix.Renderer). The reserved :default key
holds the fallback renderer. The built-in registrar is Aurora.Uix.Renderers.BuiltIn.
Host applications extend or override the catalog by implementing this behaviour and pointing the library at it:
# config/config.exs
config :aurora_uix, :renderers, MyApp.Renderers
# lib/my_app/renderers.ex
defmodule MyApp.Renderers do
@behaviour Aurora.Uix.RendererRegistrar
@impl true
def renderers do
%{
# add a brand new renderer
uppercase: &MyApp.Renderers.Uppercase.render/1,
# replace a built-in wholesale (host keys win on collision)
toggle_switch: &MyApp.Renderers.FancyToggle.render/1
}
end
endThe resolver (Aurora.Uix.Renderers) merges the built-in map with the host map,
host keys overriding built-ins.
Summary
Callbacks
Returns the map of renderer name atoms to their arity-1 render functions.
Callbacks
@callback renderers() :: %{required(atom()) => (map() -> Phoenix.LiveView.Rendered.t())}
Returns the map of renderer name atoms to their arity-1 render functions.