Class: Katalyst::Content::Editor::NewItemsComponent
- Inherits:
-
BaseComponent
- Object
- ViewComponent::Base
- BaseComponent
- Katalyst::Content::Editor::NewItemsComponent
- Defined in:
- app/components/katalyst/content/editor/new_items_component.rb
Instance Attribute Summary collapse
-
#item_types ⇒ Object
readonly
Returns the value of attribute item_types.
Attributes inherited from BaseComponent
Instance Method Summary collapse
-
#initialize(container:) ⇒ NewItemsComponent
constructor
A new instance of NewItemsComponent.
- #item(type) ⇒ Object
- #items ⇒ Object
Methods inherited from BaseComponent
#attributes_scope, #call, #container_form_id, #inspect
Constructor Details
#initialize(container:) ⇒ NewItemsComponent
Returns a new instance of NewItemsComponent.
11 12 13 14 15 16 17 18 19 |
# File 'app/components/katalyst/content/editor/new_items_component.rb', line 11 def initialize(container:, **) super @item_types = Katalyst::Content.config.items.map do |item_class| item_class.is_a?(String) ? item_class.safe_constantize : item_class end.index_by do |item_class| item_class.new.item_type.to_sym end end |
Instance Attribute Details
#item_types ⇒ Object (readonly)
Returns the value of attribute item_types.
9 10 11 |
# File 'app/components/katalyst/content/editor/new_items_component.rb', line 9 def item_types @item_types end |
Instance Method Details
#item(type) ⇒ Object
27 28 29 30 |
# File 'app/components/katalyst/content/editor/new_items_component.rb', line 27 def item(type) item = item_class_for(type).new(container:) render Editor::NewItemComponent.new(item:) end |
#items ⇒ Object
21 22 23 24 25 |
# File 'app/components/katalyst/content/editor/new_items_component.rb', line 21 def items item_types.values.map do |item_class| item_class.new(container:) end end |