Class: UI::NavigationMenuLink
- Inherits:
-
Phlex::HTML
- Object
- Phlex::HTML
- UI::NavigationMenuLink
- Includes:
- NavigationMenuLinkBehavior, SharedAsChildBehavior
- Defined in:
- app/components/ui/navigation_menu_link.rb
Overview
Link - Phlex implementation
Navigation link component. Supports asChild pattern for composition with link_to.
Instance Method Summary collapse
-
#initialize(href: nil, active: false, as_child: false, trigger_style: false, classes: "", **attributes) ⇒ NavigationMenuLink
constructor
A new instance of NavigationMenuLink.
- #view_template(&block) ⇒ Object
Methods included from SharedAsChildBehavior
Methods included from NavigationMenuLinkBehavior
#navigation_menu_link_classes, #navigation_menu_link_data_attributes, #navigation_menu_link_html_attributes, #navigation_menu_link_trigger_style_classes
Constructor Details
#initialize(href: nil, active: false, as_child: false, trigger_style: false, classes: "", **attributes) ⇒ NavigationMenuLink
Returns a new instance of NavigationMenuLink.
32 33 34 35 36 37 38 39 |
# File 'app/components/ui/navigation_menu_link.rb', line 32 def initialize(href: nil, active: false, as_child: false, trigger_style: false, classes: "", **attributes) @href = href @active = active @as_child = as_child @trigger_style = trigger_style @classes = classes @attributes = attributes end |
Instance Method Details
#view_template(&block) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 |
# File 'app/components/ui/navigation_menu_link.rb', line 41 def view_template(&block) link_attrs = build_link_attributes if @as_child # Yield attributes to block - child must accept them yield(link_attrs) if block_given? else # Default: render as anchor a(**link_attrs) do yield if block_given? end end end |