Class: Polaris::Navigation::SectionComponent::ActionComponent

Inherits:
Component
  • Object
show all
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

Methods included from ViewHelper

#polaris_body_styles, #polaris_html_classes, #polaris_html_styles, #polaris_icon_source

Methods included from StylesListHelper

#styles_list

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

#class_names

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

#callObject



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_argumentsObject



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