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:, tabs_style:) ⇒ TabGroupComponent
constructor
A new instance of TabGroupComponent.
- #render? ⇒ Boolean
- #tabs ⇒ Object
- #tabs_have_content? ⇒ Boolean
- #tabs_style ⇒ Object
- #visible_tabs ⇒ Object
Methods inherited from BaseComponent
Constructor Details
#initialize(resource:, group:, index:, form:, params:, view:, tabs_style:) ⇒ TabGroupComponent
Returns a new instance of TabGroupComponent.
10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/components/avo/tab_group_component.rb', line 10 def initialize(resource:, group:, index:, form:, params:, view:, tabs_style:) @resource = resource @group = group @index = index @form = form @params = params @view = view @tabs_style = tabs_style @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
46 47 48 49 50 51 52 |
# File 'app/components/avo/tab_group_component.rb', line 46 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
30 31 32 |
# File 'app/components/avo/tab_group_component.rb', line 30 def active_tab_name params[:active_tab_name] || group.visible_items&.first&.name end |
#render? ⇒ Boolean
22 23 24 |
# File 'app/components/avo/tab_group_component.rb', line 22 def render? tabs_have_content? && visible_tabs.present? end |
#tabs ⇒ Object
34 35 36 37 38 |
# File 'app/components/avo/tab_group_component.rb', line 34 def tabs @group.items.map do |tab| tab.hydrate(view: view) end end |
#tabs_have_content? ⇒ Boolean
26 27 28 |
# File 'app/components/avo/tab_group_component.rb', line 26 def tabs_have_content? visible_tabs.present? end |
#tabs_style ⇒ Object
54 55 56 |
# File 'app/components/avo/tab_group_component.rb', line 54 def tabs_style @tabs_style || Avo.configuration.tabs_style end |
#visible_tabs ⇒ Object
40 41 42 43 44 |
# File 'app/components/avo/tab_group_component.rb', line 40 def visible_tabs tabs.select do |tab| !tab.empty? end end |