Class: Nquery::FlashCardComponent
- Defined in:
- app/components/nquery/flash_card_component.rb
Constant Summary collapse
- TYPES =
%i[notice alert warning info].freeze
- DEFAULT_DELAY =
5000
Instance Attribute Summary collapse
-
#auto_dismiss ⇒ Object
readonly
Returns the value of attribute auto_dismiss.
-
#delay ⇒ Object
readonly
Returns the value of attribute delay.
-
#dismissible ⇒ Object
readonly
Returns the value of attribute dismissible.
-
#html_class ⇒ Object
readonly
Returns the value of attribute html_class.
-
#toast ⇒ Object
readonly
Returns the value of attribute toast.
-
#type ⇒ Object
readonly
Returns the value of attribute type.
Instance Method Summary collapse
- #auto_dismiss? ⇒ Boolean
- #css_class ⇒ Object
- #dismissible? ⇒ Boolean
-
#initialize(message: nil, messages: nil, type: :notice, dismissible: true, toast: true, delay: DEFAULT_DELAY, auto_dismiss: nil, class: nil) ⇒ FlashCardComponent
constructor
A new instance of FlashCardComponent.
- #messages ⇒ Object
- #role ⇒ Object
- #toast? ⇒ Boolean
Methods inherited from Component
Constructor Details
#initialize(message: nil, messages: nil, type: :notice, dismissible: true, toast: true, delay: DEFAULT_DELAY, auto_dismiss: nil, class: nil) ⇒ FlashCardComponent
Returns a new instance of FlashCardComponent.
10 11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'app/components/nquery/flash_card_component.rb', line 10 def initialize(message: nil, messages: nil, type: :notice, dismissible: true, toast: true, delay: DEFAULT_DELAY, auto_dismiss: nil, class: nil) @messages = Array().presence || Array().compact @type = type.to_sym @toast = toast @delay = delay @dismissible = dismissible @auto_dismiss = auto_dismiss.nil? ? toast : auto_dismiss @html_class = binding.local_variable_get(:class) raise ArgumentError, "invalid flash type: #{@type}" unless TYPES.include?(@type) raise ArgumentError, "message is required" if @messages.empty? end |
Instance Attribute Details
#auto_dismiss ⇒ Object (readonly)
Returns the value of attribute auto_dismiss.
8 9 10 |
# File 'app/components/nquery/flash_card_component.rb', line 8 def auto_dismiss @auto_dismiss end |
#delay ⇒ Object (readonly)
Returns the value of attribute delay.
8 9 10 |
# File 'app/components/nquery/flash_card_component.rb', line 8 def delay @delay end |
#dismissible ⇒ Object (readonly)
Returns the value of attribute dismissible.
8 9 10 |
# File 'app/components/nquery/flash_card_component.rb', line 8 def dismissible @dismissible end |
#html_class ⇒ Object (readonly)
Returns the value of attribute html_class.
8 9 10 |
# File 'app/components/nquery/flash_card_component.rb', line 8 def html_class @html_class end |
#toast ⇒ Object (readonly)
Returns the value of attribute toast.
8 9 10 |
# File 'app/components/nquery/flash_card_component.rb', line 8 def toast @toast end |
#type ⇒ Object (readonly)
Returns the value of attribute type.
8 9 10 |
# File 'app/components/nquery/flash_card_component.rb', line 8 def type @type end |
Instance Method Details
#auto_dismiss? ⇒ Boolean
43 44 45 |
# File 'app/components/nquery/flash_card_component.rb', line 43 def auto_dismiss? auto_dismiss end |
#css_class ⇒ Object
32 33 34 35 36 37 |
# File 'app/components/nquery/flash_card_component.rb', line 32 def css_class classes = ["nq-flash-card", "nq-flash-card-#{type}"] classes << (toast ? "nq-flash-card-toast" : "nq-flash-card-inline") classes << html_class if html_class.present? classes.join(" ") end |
#dismissible? ⇒ Boolean
39 40 41 |
# File 'app/components/nquery/flash_card_component.rb', line 39 def dismissible? dismissible end |
#messages ⇒ Object
24 25 26 |
# File 'app/components/nquery/flash_card_component.rb', line 24 def @messages end |
#role ⇒ Object
28 29 30 |
# File 'app/components/nquery/flash_card_component.rb', line 28 def role type == :alert ? "alert" : "status" end |
#toast? ⇒ Boolean
47 48 49 |
# File 'app/components/nquery/flash_card_component.rb', line 47 def toast? toast end |