Class: Ui::Toast::Component

Inherits:
BaseComponent
  • Object
show all
Defined in:
lib/uikit_rails/templates/components/toast/component.rb

Overview

Brief notification with optional title, description, dismiss control, auto-dismiss, and optional fixed viewport wrapper (six screen positions).

Constant Summary collapse

VARIANTS =
i[default success destructive warning].freeze
POSITIONS =
i[
  top_left
  top_center
  top_right
  bottom_left
  bottom_center
  bottom_right
].freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(variant: :default, dismissible: true, duration_ms: nil, position: nil, viewport_html_attrs: {}, **html_attrs) ⇒ Component

rubocop:disable Metrics/ParameterLists -- explicit keywords match ViewComponent / ERB call style



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/uikit_rails/templates/components/toast/component.rb', line 25

def initialize(
  variant: :default,
  dismissible: true,
  duration_ms: nil,
  position: nil,
  viewport_html_attrs: {},
  **html_attrs
)
  @variant = variant.to_sym
  @dismissible = dismissible
  @duration_ms = duration_ms&.to_i
  @position = position.nil? ? nil : normalize_position(position)
  @viewport_html_attrs = viewport_html_attrs
  @html_attrs = html_attrs
  super()
end

Instance Attribute Details

#dismissibleObject (readonly)

Returns the value of attribute dismissible.



22
23
24
# File 'lib/uikit_rails/templates/components/toast/component.rb', line 22

def dismissible
  @dismissible
end

#duration_msObject (readonly)

Returns the value of attribute duration_ms.



22
23
24
# File 'lib/uikit_rails/templates/components/toast/component.rb', line 22

def duration_ms
  @duration_ms
end

#html_attrsObject (readonly)

Returns the value of attribute html_attrs.



22
23
24
# File 'lib/uikit_rails/templates/components/toast/component.rb', line 22

def html_attrs
  @html_attrs
end

#positionObject (readonly)

Returns the value of attribute position.



22
23
24
# File 'lib/uikit_rails/templates/components/toast/component.rb', line 22

def position
  @position
end

#variantObject (readonly)

Returns the value of attribute variant.



22
23
24
# File 'lib/uikit_rails/templates/components/toast/component.rb', line 22

def variant
  @variant
end

#viewport_html_attrsObject (readonly)

Returns the value of attribute viewport_html_attrs.



22
23
24
# File 'lib/uikit_rails/templates/components/toast/component.rb', line 22

def viewport_html_attrs
  @viewport_html_attrs
end

Instance Method Details

#duration_ms_positive?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/uikit_rails/templates/components/toast/component.rb', line 55

def duration_ms_positive?
  !duration_ms.nil? && duration_ms.positive?
end

#needs_stimulus?Boolean

Returns:

  • (Boolean)


51
52
53
# File 'lib/uikit_rails/templates/components/toast/component.rb', line 51

def needs_stimulus?
  dismissible || duration_ms_positive?
end

#show_icon?Boolean

rubocop:enable Metrics/ParameterLists

Returns:

  • (Boolean)


43
44
45
# File 'lib/uikit_rails/templates/components/toast/component.rb', line 43

def show_icon?
  variant != :default
end

#wrap_in_viewport?Boolean

Returns:

  • (Boolean)


47
48
49
# File 'lib/uikit_rails/templates/components/toast/component.rb', line 47

def wrap_in_viewport?
  !position.nil?
end