Module: Shipyard::AlertHelper

Includes:
ActionView::Context, ActionView::Helpers::TagHelper, ActionView::Helpers::TextHelper
Included in:
Jekyll::Alert
Defined in:
app/helpers/shipyard/alert_helper.rb

Instance Method Summary collapse

Instance Method Details

#flash_alert(*args, &block) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/helpers/shipyard/alert_helper.rb', line 7

def flash_alert(*args, &block)
  alert_txt = capture(&block) if block_given?
  options = {}
  options[:role] ||= 'alert'
  options[:data] ||= {}
  options[:data][:shipyard] = 'alert'
  options['v-show'] = 'visible'
  class_list = ['alert']

  args.each do |arg|
    if arg.is_a? Symbol
      class_list << "alert-#{alert_type(arg)}"
    elsif arg.is_a? Hash
      options = options.merge(arg) if arg.is_a?(Hash)
    else
      alert_txt = arg
    end
  end

  options[:class] = "#{class_list.join(' ')} #{options[:class]}".strip

   :div, options do
    concat (:p, raw(alert_txt), class: 'alert-txt')
    if defined? icon
      concat (
              icon('x', class: 'alert-close-icon icon-outline-inverse center'),
              svg_html,
              class: 'alert-close v-center',
              '@click': 'close'
            )
    end
  end
end