Class: UI::AccordionItemComponent
- Inherits:
-
ViewComponent::Base
- Object
- ViewComponent::Base
- UI::AccordionItemComponent
- Includes:
- AccordionItemBehavior
- Defined in:
- app/view_components/ui/accordion_item_component.rb
Overview
Accordion Item component (ViewComponent) Individual collapsible item within an accordion
Instance Attribute Summary collapse
-
#initial_open ⇒ Object
readonly
Expose item_value and initial_open to child components via content_tag_options.
-
#value ⇒ Object
readonly
Expose item_value and initial_open to child components via content_tag_options.
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(value: "", initial_open: false, classes: "", attributes: {}) ⇒ AccordionItemComponent
constructor
A new instance of AccordionItemComponent.
-
#item_context ⇒ Object
Helper method to expose item context to child components.
Methods included from AccordionItemBehavior
#item_base_classes, #item_classes, #item_data_attributes, #item_html_attributes, #item_state, #merged_item_data_attributes
Constructor Details
#initialize(value: "", initial_open: false, classes: "", attributes: {}) ⇒ AccordionItemComponent
Returns a new instance of AccordionItemComponent.
26 27 28 29 30 31 |
# File 'app/view_components/ui/accordion_item_component.rb', line 26 def initialize(value: "", initial_open: false, classes: "", attributes: {}) @value = value @initial_open = initial_open @classes = classes @attributes = attributes end |
Instance Attribute Details
#initial_open ⇒ Object (readonly)
Expose item_value and initial_open to child components via content_tag_options
20 21 22 |
# File 'app/view_components/ui/accordion_item_component.rb', line 20 def initial_open @initial_open end |
#value ⇒ Object (readonly)
Expose item_value and initial_open to child components via content_tag_options
20 21 22 |
# File 'app/view_components/ui/accordion_item_component.rb', line 20 def value @value end |
Instance Method Details
#call ⇒ Object
33 34 35 36 37 |
# File 'app/view_components/ui/accordion_item_component.rb', line 33 def call # Store context for child components (trigger and content) # ViewComponent renders slots in parent context, so we use helpers method content_tag :div, content, **item_html_attributes end |
#item_context ⇒ Object
Helper method to expose item context to child components
40 41 42 |
# File 'app/view_components/ui/accordion_item_component.rb', line 40 def item_context {item_value: @value, initial_open: @initial_open} end |