Class: Katalyst::Content::Editor::NewItemsComponent

Inherits:
BaseComponent
  • Object
show all
Defined in:
app/components/katalyst/content/editor/new_items_component.rb

Instance Attribute Summary collapse

Attributes inherited from BaseComponent

#container

Instance Method Summary collapse

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_typesObject (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

#itemsObject



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