Class: Nav::Item::Component
- Inherits:
-
Lookbook::BaseComponent
- Object
- Lookbook::BaseComponent
- Nav::Item::Component
- Defined in:
- app/components/lookbook/nav/item/component.rb
Constant Summary collapse
- ICONS =
{ page: :file, page_collection: :folder, preview_collection: :folder, preview: :layers, example: :eye, group: :eye, collection: :folder }.freeze
Instance Method Summary collapse
- #children ⇒ Object
- #children? ⇒ Boolean
- #collapsed? ⇒ Boolean
- #collection? ⇒ Boolean
- #href ⇒ Object
- #id ⇒ Object
-
#initialize(item, nav_id:, depth: 1, collapse_singles: false, **html_attrs) ⇒ Component
constructor
A new instance of Component.
- #item ⇒ Object
- #left_pad ⇒ Object
- #nav_icon ⇒ Object
Constructor Details
#initialize(item, nav_id:, depth: 1, collapse_singles: false, **html_attrs) ⇒ Component
Returns a new instance of Component.
15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'app/components/lookbook/nav/item/component.rb', line 15 def initialize( item, nav_id:, depth: 1, collapse_singles: false, **html_attrs ) @nav_id = nav_id @item = item @depth = depth @collapse_singles = collapse_singles super(**html_attrs) end |
Instance Method Details
#children ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'app/components/lookbook/nav/item/component.rb', line 45 def children @children ||= if collection? && !collapsed? item.non_empty_items.map do |item| lookbook_render Lookbook::Nav::Item::Component.new item, nav_id: @nav_id, depth: (@depth + 1), collapse_singles: @collapse_singles end else [] end end |
#children? ⇒ Boolean
70 71 72 |
# File 'app/components/lookbook/nav/item/component.rb', line 70 def children? children.any? if collection? && !collapsed? end |
#collapsed? ⇒ Boolean
74 75 76 |
# File 'app/components/lookbook/nav/item/component.rb', line 74 def collapsed? @collapse_singles == true && collection? && @item.collapsible? && @item.one? end |
#collection? ⇒ Boolean
66 67 68 |
# File 'app/components/lookbook/nav/item/component.rb', line 66 def collection? @item.is_a? Lookbook::Collection end |
#href ⇒ Object
37 38 39 40 41 42 43 |
# File 'app/components/lookbook/nav/item/component.rb', line 37 def href if collapsed? item.url_path elsif !collection? item.url_path end end |
#id ⇒ Object
29 30 31 |
# File 'app/components/lookbook/nav/item/component.rb', line 29 def id "#{@nav_id}-#{@item.id}" end |
#item ⇒ Object
58 59 60 |
# File 'app/components/lookbook/nav/item/component.rb', line 58 def item collapsed? ? @item.first : @item end |
#left_pad ⇒ Object
33 34 35 |
# File 'app/components/lookbook/nav/item/component.rb', line 33 def left_pad ((@depth - 1) * 12) + 24 end |
#nav_icon ⇒ Object
62 63 64 |
# File 'app/components/lookbook/nav/item/component.rb', line 62 def nav_icon ICONS[@item.type] || :file end |