Class: NitroKit::Toolbar

Inherits:
Component
  • Object
show all
Defined in:
app/components/nitro_kit/toolbar.rb

Defined Under Namespace

Classes: Region

Constant Summary

Constants inherited from Component

Component::ADDITIVE_DATA_ATTRIBUTES, Component::COMPONENT_OWNED_DATA_ATTRIBUTES, Component::FORBIDDEN_ATTRIBUTES, Component::RESERVED_DATA_ATTRIBUTES

Instance Method Summary collapse

Constructor Details

#initialize(id: nil, html: {}, aria: {}, data: {}, desperately_need_a_class: nil) ⇒ Toolbar

Returns a new instance of Toolbar.



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'app/components/nitro_kit/toolbar.rb', line 7

def initialize(id: nil, html: {}, aria: {}, data: {}, desperately_need_a_class: nil)
  @leading_region = nil
  @trailing_region = nil

  super(
    component: :toolbar,
    attributes: { id: }.compact,
    html:,
    aria:,
    data:,
    desperately_need_a_class:
  )
end

Instance Method Details

#leading(html: {}, aria: {}, data: {}, desperately_need_a_class: nil, &block) ⇒ Object

Raises:

  • (ArgumentError)


31
32
33
34
35
36
37
38
39
40
41
# File 'app/components/nitro_kit/toolbar.rb', line 31

def leading(html: {}, aria: {}, data: {}, desperately_need_a_class: nil, &block)
  raise ArgumentError, "Toolbar accepts at most one leading region" if @leading_region
  @leading_region = Region.new(
    content: block,
    html:,
    aria:,
    data:,
    css_class: desperately_need_a_class
  )
  nil
end

#trailing(html: {}, aria: {}, data: {}, desperately_need_a_class: nil, &block) ⇒ Object

Raises:

  • (ArgumentError)


43
44
45
46
47
48
49
50
51
52
53
# File 'app/components/nitro_kit/toolbar.rb', line 43

def trailing(html: {}, aria: {}, data: {}, desperately_need_a_class: nil, &block)
  raise ArgumentError, "Toolbar accepts at most one trailing region" if @trailing_region
  @trailing_region = Region.new(
    content: block,
    html:,
    aria:,
    data:,
    css_class: desperately_need_a_class
  )
  nil
end

#view_template {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:



21
22
23
24
25
26
27
28
29
# File 'app/components/nitro_kit/toolbar.rb', line 21

def view_template
  yield self if block_given?
  validate_regions!

  div(**root_attributes) do
    render_region(:leading, @leading_region) if @leading_region
    render_region(:trailing, @trailing_region) if @trailing_region
  end
end