Class: Polaris::Navigation::SectionComponent::ActionComponent
- Inherits:
-
Component
- Object
- ViewComponent::Base
- Component
- Polaris::Navigation::SectionComponent::ActionComponent
- Defined in:
- app/components/polaris/navigation/section_component.rb
Constant Summary
Constants included from ViewHelper
ViewHelper::POLARIS_HELPERS, ViewHelper::POLARIS_TEXT_STYLES
Constants included from FetchOrFallbackHelper
FetchOrFallbackHelper::InvalidValueError
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(url: nil, external: false, icon: nil, **system_arguments) ⇒ ActionComponent
constructor
A new instance of ActionComponent.
- #system_arguments ⇒ Object
Methods included from ViewHelper
#polaris_body_styles, #polaris_html_classes, #polaris_html_styles, #polaris_icon_source
Methods included from StylesListHelper
Methods included from OptionHelper
#append_option, #prepend_option
Methods included from FetchOrFallbackHelper
#fetch_or_fallback, #fetch_or_fallback_boolean, #fetch_or_fallback_nested
Methods included from ClassNameHelper
Constructor Details
#initialize(url: nil, external: false, icon: nil, **system_arguments) ⇒ ActionComponent
Returns a new instance of ActionComponent.
30 31 32 33 34 35 |
# File 'app/components/polaris/navigation/section_component.rb', line 30 def initialize(url: nil, external: false, icon: nil, **system_arguments) @url = url @external = external @icon = icon @system_arguments = system_arguments end |
Instance Method Details
#call ⇒ Object
54 55 56 57 58 59 60 61 62 |
# File 'app/components/polaris/navigation/section_component.rb', line 54 def call render(Polaris::BaseComponent.new(**system_arguments)) do if @icon.present? render(Polaris::IconComponent.new(name: @icon)) else content end end end |
#system_arguments ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'app/components/polaris/navigation/section_component.rb', line 37 def system_arguments @system_arguments.tap do |opts| if @url.present? opts[:tag] = "a" opts[:href] = @url opts[:target] = "_blank" if @external else opts[:tag] = "button" opts[:type] = "button" end opts[:classes] = class_names( @system_arguments[:classes], "Polaris-Navigation__Action" ) end end |