Class: Polaris::CollapsibleComponent
- Inherits:
-
Component
- Object
- Component
- Polaris::CollapsibleComponent
- Defined in:
- app/components/polaris/collapsible_component.rb
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(expand_on_print: false, open: false, title: nil, **system_arguments) ⇒ CollapsibleComponent
constructor
A new instance of CollapsibleComponent.
- #system_arguments ⇒ Object
Constructor Details
#initialize(expand_on_print: false, open: false, title: nil, **system_arguments) ⇒ CollapsibleComponent
Returns a new instance of CollapsibleComponent.
5 6 7 8 9 10 11 12 13 14 15 16 |
# File 'app/components/polaris/collapsible_component.rb', line 5 def initialize( expand_on_print: false, open: false, title: nil, **system_arguments ) @expand_on_print = @open = open @title = title @system_arguments = system_arguments @system_arguments[:id] ||= "polaris-collapsible-#{SecureRandom.hex(4)}" if @title.present? end |
Instance Method Details
#call ⇒ Object
36 37 38 39 40 41 |
# File 'app/components/polaris/collapsible_component.rb', line 36 def call collapsible = render(Polaris::BaseComponent.new(**system_arguments)) { content } return collapsible if @title.blank? tag.div { safe_join([trigger, collapsible]) } end |
#system_arguments ⇒ Object
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/components/polaris/collapsible_component.rb', line 18 def system_arguments @system_arguments.tap do |opts| opts[:tag] = "div" opts[:data] ||= {} prepend_option(opts[:data], :controller, "polaris-collapsible") opts[:classes] = class_names( @system_arguments[:classes], "Polaris-Collapsible", "Polaris-Collapsible--isFullyClosed": !@open, "Polaris-Collapsible--expandOnPrint": @expand_on_print ) opts[:style] = class_names( @open ? "max-height: none;" : "max-height: 0px;", @open ? "overflow: visible;" : "overflow: hidden;" ) end end |