Aurora. Uix. ComponentsResolver
(Aurora UIX v0.1.5-rc.1)
Copy Markdown
Macro module that enables runtime component overriding for Aurora UIX component modules.
When a component module calls use Aurora.Uix.ComponentsResolver, :some_key, it:
- Imports
Aurora.Uix.ComponentsResolverHelper, making theresolve_component_for/1macro available. - Stores the given atom as
@components_override, which is the Application env key used to look up a host override module at runtime. - Injects a
components_override/0function (via@before_compile) that returns the configured key.
Usage
defmodule MyComponents do
use Aurora.Uix.ComponentsResolver, :my_components
def my_component(%{host_components: nil} = assigns) do
# default implementation
end
resolve_component_for(:my_component)
endEach component module uses a distinct key:
| Module | Key |
|---|---|
CoreComponents | :core_components |
Components | :basic_components |
FilteringComponents | :basic_filtering_components |
RoutingComponents | :basic_routing_components |
See Aurora.Uix.ComponentsResolverHelper for how the public dispatch function is
generated and how runtime lookup works.