Class: UI::Collapsible

Inherits:
Phlex::HTML
  • Object
show all
Includes:
CollapsibleBehavior
Defined in:
app/components/ui/collapsible.rb

Instance Method Summary collapse

Methods included from CollapsibleBehavior

#collapsible_classes, #collapsible_data_attributes, #collapsible_html_attributes

Constructor Details

#initialize(open: false, disabled: false, as_child: false, classes: "", **attributes) ⇒ Collapsible

Returns a new instance of Collapsible.



6
7
8
9
10
11
12
# File 'app/components/ui/collapsible.rb', line 6

def initialize(open: false, disabled: false, as_child: false, classes: "", **attributes)
  @open = open
  @disabled = disabled
  @as_child = as_child
  @classes = classes
  @attributes = attributes
end

Instance Method Details

#view_template(&block) ⇒ Object



14
15
16
17
18
19
20
21
22
# File 'app/components/ui/collapsible.rb', line 14

def view_template(&block)
  collapsible_attrs = collapsible_html_attributes.deep_merge(@attributes)

  if @as_child
    yield(collapsible_attrs) if block_given?
  else
    div(**collapsible_attrs, &block)
  end
end