Class: GenerativeUI::Renderers::ViewComponent

Inherits:
GenerativeUI::Renderer show all
Defined in:
lib/generative_ui/renderers/view_component.rb

Constant Summary collapse

ADAPTER =
:view_component

Instance Method Summary collapse

Methods inherited from GenerativeUI::Renderer

#call, #catalog, #catalog=, #render_component_instance

Constructor Details

#initialize(view_context:, catalog: :default) ⇒ ViewComponent

Returns a new instance of ViewComponent.



8
9
10
11
# File 'lib/generative_ui/renderers/view_component.rb', line 8

def initialize(view_context:, catalog: :default)
  super(catalog:)
  @view_context = view_context
end

Instance Method Details

#render_component(definition:, attributes:, additional_properties:) ⇒ Object



13
14
15
16
17
18
# File 'lib/generative_ui/renderers/view_component.rb', line 13

def render_component(definition:, attributes:, additional_properties:)
  component_class = resolve(catalog.target_for(definition, ADAPTER))
  kwargs = attributes.dup
  kwargs[:additional_properties] = additional_properties unless additional_properties.nil?
  @view_context.render(component_class.new(**kwargs))
end