Class: Primer::FlashComponent

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

Defined Under Namespace

Classes: Actions

Constant Summary collapse

DEFAULT_VARIANT =
:default
VARIANT_MAPPINGS =
{
  DEFAULT_VARIANT => "",
  :warning => "flash-warn",
  :danger => "flash-error",
  :success => "flash-success"
}.freeze

Constants included from FetchOrFallbackHelper

Primer::FetchOrFallbackHelper::InvalidValueError

Instance Method Summary collapse

Methods included from FetchOrFallbackHelper

#fetch_or_fallback

Methods included from ClassNameHelper

#class_names

Constructor Details

#initialize(full: false, spacious: false, dismissible: false, icon: nil, variant: DEFAULT_VARIANT, **kwargs) ⇒ FlashComponent

Returns a new instance of FlashComponent.



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'app/components/primer/flash_component.rb', line 17

def initialize(full: false, spacious: false, dismissible: false, icon: nil, variant: DEFAULT_VARIANT, **kwargs)
  @icon = icon
  @dismissible = dismissible
  @kwargs = kwargs
  @kwargs[:tag] = :div
  @kwargs[:classes] = class_names(
    @kwargs[:classes],
    "flash",
    VARIANT_MAPPINGS[fetch_or_fallback(VARIANT_MAPPINGS.keys, variant.to_sym, DEFAULT_VARIANT)],
    "flash-full": full
  )
  @kwargs[:mb] ||= spacious ? 4 : nil
end