Class: NitroKit::PaginationBar
- Defined in:
- app/components/nitro_kit/pagination_bar.rb
Defined Under Namespace
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
- #html_summary ⇒ Object
-
#initialize(id: nil, html: {}, aria: {}, data: {}, desperately_need_a_class: nil) ⇒ PaginationBar
constructor
A new instance of PaginationBar.
- #pagination(component, &content) ⇒ Object
- #summary(text = nil, html: {}, aria: {}, data: {}, desperately_need_a_class: nil, &block) ⇒ Object
- #view_template {|_self| ... } ⇒ Object
Constructor Details
#initialize(id: nil, html: {}, aria: {}, data: {}, desperately_need_a_class: nil) ⇒ PaginationBar
Returns a new instance of PaginationBar.
8 9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'app/components/nitro_kit/pagination_bar.rb', line 8 def initialize(id: nil, html: {}, aria: {}, data: {}, desperately_need_a_class: nil) @summary = nil @pagination = nil super( component: :pagination_bar, attributes: { id: }.compact, html:, aria:, data:, desperately_need_a_class: ) end |
Instance Method Details
#html_summary ⇒ Object
32 |
# File 'app/components/nitro_kit/pagination_bar.rb', line 32 alias :html_summary :summary |
#pagination(component, &content) ⇒ Object
52 53 54 55 56 57 58 59 60 |
# File 'app/components/nitro_kit/pagination_bar.rb', line 52 def pagination(component, &content) raise ArgumentError, "PaginationBar accepts exactly one Pagination" if @pagination unless component.is_a?(NitroKit::Pagination) raise ArgumentError, "PaginationBar pagination must be a NitroKit::Pagination" end @pagination = Child.new(component:, content:) nil end |
#summary(text = nil, html: {}, aria: {}, data: {}, desperately_need_a_class: nil, &block) ⇒ Object
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'app/components/nitro_kit/pagination_bar.rb', line 34 def summary(text = nil, html: {}, aria: {}, data: {}, desperately_need_a_class: nil, &block) raise ArgumentError, "PaginationBar accepts at most one summary" if @summary raise ArgumentError, "PaginationBar summary accepts text or a block, not both" if !text.nil? && block unless block || (text.is_a?(String) && !text.strip.empty?) raise ArgumentError, "PaginationBar summary requires non-blank text or a block" end @summary = Summary.new( text:, content: block, html:, aria:, data:, css_class: desperately_need_a_class ) nil end |
#view_template {|_self| ... } ⇒ Object
22 23 24 25 26 27 28 29 30 |
# File 'app/components/nitro_kit/pagination_bar.rb', line 22 def view_template yield self if block_given? validate_regions! div(**root_attributes) do render_summary if @summary render_in_slot(@pagination.component, :pagination, &@pagination.content) end end |