Sha256: cc660a557d8e93c53a8f388ba663c38428387c1d2242b6b34e6a8c7ac1545f2f

Contents?: true

Size: 763 Bytes

Versions: 8

Compression:

Stored size: 763 Bytes

Contents

module Lookbook
  class Nav::Component < Lookbook::BaseComponent
    renders_one :filter, Lookbook::Filter::Component
    renders_one :toolbar, Lookbook::Toolbar::Component

    def initialize(
      collection:, id: nil,
      collapse_singles: false,
      **attrs
    )
      @id = id.presence || "#{collection.id}-nav"
      @collection = collection.as_tree
      @item_args = {
        collapse_singles: collapse_singles
      }
      super(**attrs, id: id)
    end

    def items
      @collection.non_empty_items.map do |item|
        lookbook_render Lookbook::Nav::Item::Component.new item,
          nav_id: @id,
          depth: 1,
          **@item_args
      end
    end

    protected

    def alpine_component
      "navComponent"
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
lookbook-1.3.4 app/components/lookbook/nav/component.rb
lookbook-1.3.3 app/components/lookbook/nav/component.rb
lookbook-1.3.1 app/components/lookbook/nav/component.rb
lookbook-1.3.0 app/components/lookbook/nav/component.rb
lookbook-1.2.1 app/components/lookbook/nav/component.rb
lookbook-1.2.0 app/components/lookbook/nav/component.rb
lookbook-1.1.1 app/components/lookbook/nav/component.rb
lookbook-1.1.0 app/components/lookbook/nav/component.rb