Class: Avo::TabGroupComponent
- Inherits:
-
BaseComponent
- Object
- ViewComponent::Base
- BaseComponent
- Avo::TabGroupComponent
- Defined in:
- app/components/avo/tab_group_component.rb
Instance Attribute Summary collapse
-
#form ⇒ Object
readonly
Returns the value of attribute form.
-
#group ⇒ Object
readonly
Returns the value of attribute group.
-
#index ⇒ Object
readonly
Returns the value of attribute index.
-
#resource ⇒ Object
readonly
Returns the value of attribute resource.
-
#view ⇒ Object
readonly
Returns the value of attribute view.
Instance Method Summary collapse
- #active_tab ⇒ Object
- #active_tab_name ⇒ Object
-
#initialize(resource:, group:, index:, form:, params:, view:) ⇒ TabGroupComponent
constructor
A new instance of TabGroupComponent.
- #render? ⇒ Boolean
- #tabs ⇒ Object
- #tabs_have_content? ⇒ Boolean
- #visible_tabs ⇒ Object
Methods inherited from BaseComponent
Constructor Details
#initialize(resource:, group:, index:, form:, params:, view:) ⇒ TabGroupComponent
Returns a new instance of TabGroupComponent.
10 11 12 13 14 15 16 17 18 19 |
# File 'app/components/avo/tab_group_component.rb', line 10 def initialize(resource:, group:, index:, form:, params:, view:) @resource = resource @group = group @index = index @form = form @params = params @view = view @group.index = index end |
Instance Attribute Details
#form ⇒ Object (readonly)
Returns the value of attribute form.
7 8 9 |
# File 'app/components/avo/tab_group_component.rb', line 7 def form @form end |
#group ⇒ Object (readonly)
Returns the value of attribute group.
4 5 6 |
# File 'app/components/avo/tab_group_component.rb', line 4 def group @group end |
#index ⇒ Object (readonly)
Returns the value of attribute index.
5 6 7 |
# File 'app/components/avo/tab_group_component.rb', line 5 def index @index end |
#resource ⇒ Object (readonly)
Returns the value of attribute resource.
8 9 10 |
# File 'app/components/avo/tab_group_component.rb', line 8 def resource @resource end |
#view ⇒ Object (readonly)
Returns the value of attribute view.
6 7 8 |
# File 'app/components/avo/tab_group_component.rb', line 6 def view @view end |
Instance Method Details
#active_tab ⇒ Object
45 46 47 48 49 50 51 |
# File 'app/components/avo/tab_group_component.rb', line 45 def active_tab return if group.visible_items.blank? group.visible_items.find do |tab| tab.name.to_s == active_tab_name.to_s end end |
#active_tab_name ⇒ Object
29 30 31 |
# File 'app/components/avo/tab_group_component.rb', line 29 def active_tab_name params[:active_tab_name] || group.visible_items&.first&.name end |
#render? ⇒ Boolean
21 22 23 |
# File 'app/components/avo/tab_group_component.rb', line 21 def render? tabs_have_content? && visible_tabs.present? end |
#tabs ⇒ Object
33 34 35 36 37 |
# File 'app/components/avo/tab_group_component.rb', line 33 def tabs @group.items.map do |tab| tab.hydrate(view: view) end end |
#tabs_have_content? ⇒ Boolean
25 26 27 |
# File 'app/components/avo/tab_group_component.rb', line 25 def tabs_have_content? visible_tabs.present? end |
#visible_tabs ⇒ Object
39 40 41 42 43 |
# File 'app/components/avo/tab_group_component.rb', line 39 def visible_tabs tabs.select do |tab| tab.visible? end end |