Class: Primer::SubheadComponent

Inherits:
Component
  • Object
show all
Includes:
ViewComponent::Slotable
Defined in:
app/components/primer/subhead_component.rb

Overview

Use the Subhead component for page headings.

Defined Under Namespace

Classes: Actions, Description, Heading

Constant Summary

Constants included from FetchOrFallbackHelper

FetchOrFallbackHelper::InvalidValueError

Instance Method Summary collapse

Methods included from FetchOrFallbackHelper

#fetch_or_fallback

Methods included from ClassNameHelper

#class_names

Constructor Details

#initialize(spacious: false, hide_border: false, **kwargs) ⇒ SubheadComponent

Returns a new instance of SubheadComponent.

Examples:

95|Default

<%= render(Primer::SubheadComponent.new) do |component| %>
  <% component.slot(:heading) do %>
    My Heading
  <% end %>
  <% component.slot(:description) do %>
    My Description
  <% end %>
<% end %>

95|Without border

<%= render(Primer::SubheadComponent.new(hide_border: true)) do |component| %>
  <% component.slot(:heading) do %>
    My Heading
  <% end %>
  <% component.slot(:description) do %>
    My Description
  <% end %>
<% end %>

95|With actions

<%= render(Primer::SubheadComponent.new) do |component| %>
  <% component.slot(:heading) do %>
    My Heading
  <% end %>
  <% component.slot(:description) do %>
    My Description
  <% end %>
  <% component.slot(:actions) do %>
    <%= render(
      Primer::ButtonComponent.new(
        tag: :a, href: "http://www.google.com", button_type: :danger
      )
    ) { "Action" } %>
  <% end %>
<% end %>


52
53
54
55
56
57
58
59
60
61
62
63
64
# File 'app/components/primer/subhead_component.rb', line 52

def initialize(spacious: false, hide_border: false, **kwargs)
  @kwargs = kwargs

  @kwargs[:tag] = :div
  @kwargs[:classes] =
    class_names(
      @kwargs[:classes],
      "Subhead hx_Subhead--responsive",
      "Subhead--spacious": spacious,
      "border-bottom-0": hide_border
    )
  @kwargs[:mb] ||= hide_border ? 0 : nil
end

Instance Method Details

#render?Boolean



66
67
68
# File 'app/components/primer/subhead_component.rb', line 66

def render?
  heading.present?
end