Class: Jav::Sidebar::LinkComponent
- Inherits:
-
ViewComponent::Base
- Object
- ViewComponent::Base
- Jav::Sidebar::LinkComponent
- Defined in:
- app/components/jav/sidebar/link_component.rb
Instance Attribute Summary collapse
-
#active ⇒ Object
readonly
Returns the value of attribute active.
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#icon ⇒ Object
readonly
Returns the value of attribute icon.
-
#label ⇒ Object
readonly
Returns the value of attribute label.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
-
#target ⇒ Object
readonly
Returns the value of attribute target.
Instance Method Summary collapse
- #classes ⇒ Object
-
#initialize(label: nil, path: nil, active: :inclusive, target: nil, data: {}, icon: nil) ⇒ LinkComponent
constructor
A new instance of LinkComponent.
- #is_external? ⇒ Boolean
-
#link_method ⇒ Object
For external links active_link_to marks them all as active.
Constructor Details
#initialize(label: nil, path: nil, active: :inclusive, target: nil, data: {}, icon: nil) ⇒ LinkComponent
Returns a new instance of LinkComponent.
6 7 8 9 10 11 12 13 |
# File 'app/components/jav/sidebar/link_component.rb', line 6 def initialize(label: nil, path: nil, active: :inclusive, target: nil, data: {}, icon: nil) @label = label @path = path @active = active @target = target @data = data @icon = icon end |
Instance Attribute Details
#active ⇒ Object (readonly)
Returns the value of attribute active.
4 5 6 |
# File 'app/components/jav/sidebar/link_component.rb', line 4 def active @active end |
#data ⇒ Object (readonly)
Returns the value of attribute data.
4 5 6 |
# File 'app/components/jav/sidebar/link_component.rb', line 4 def data @data end |
#icon ⇒ Object (readonly)
Returns the value of attribute icon.
4 5 6 |
# File 'app/components/jav/sidebar/link_component.rb', line 4 def icon @icon end |
#label ⇒ Object (readonly)
Returns the value of attribute label.
4 5 6 |
# File 'app/components/jav/sidebar/link_component.rb', line 4 def label @label end |
#path ⇒ Object (readonly)
Returns the value of attribute path.
4 5 6 |
# File 'app/components/jav/sidebar/link_component.rb', line 4 def path @path end |
#target ⇒ Object (readonly)
Returns the value of attribute target.
4 5 6 |
# File 'app/components/jav/sidebar/link_component.rb', line 4 def target @target end |
Instance Method Details
#classes ⇒ Object
27 28 29 |
# File 'app/components/jav/sidebar/link_component.rb', line 27 def classes 'px-4 pr-0 flex-1 flex mx-6 leading-none py-2 text-black rounded-sm font-medium hover:bg-gray-100 gap-1' end |
#is_external? ⇒ Boolean
15 16 17 18 19 20 |
# File 'app/components/jav/sidebar/link_component.rb', line 15 def is_external? # If the path contains the scheme, check if it includes the root path or not return path.exclude?(Jav::App.root_path) if URI(path).scheme.present? false end |
#link_method ⇒ Object
For external links active_link_to marks them all as active.
23 24 25 |
# File 'app/components/jav/sidebar/link_component.rb', line 23 def link_method is_external? ? :link_to : :active_link_to end |