Module: Baldur::UiHelperFeedback

Included in:
UiHelper
Defined in:
app/helpers/baldur/ui_helper_feedback.rb

Constant Summary collapse

FLASH_SNACKBAR_VARIANTS =
{ success: :success, notice: :notice, alert: :error, warning: :warning }.freeze

Instance Method Summary collapse

Instance Method Details

#snackbar_flash_payloads(flash) ⇒ Object



41
42
43
44
45
46
47
# File 'app/helpers/baldur/ui_helper_feedback.rb', line 41

def snackbar_flash_payloads(flash)
  FLASH_SNACKBAR_VARIANTS.filter_map do |flash_key, variant|
    payload = flash[flash_key]
    next if payload.blank?
    normalize_flash_snackbar(variant, payload)
  end
end

#ui_alert(body: nil, variant: :notice, title: nil, icon: nil, actions: nil, collapsible: false, collapse_key: nil, collapsed_summary_action_label: 'More', class_name: nil, &block) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/helpers/baldur/ui_helper_feedback.rb', line 3

def ui_alert(body: nil, variant: :notice, title: nil, icon: nil, actions: nil, collapsible: false,
             collapse_key: nil, collapsed_summary_action_label: 'More', class_name: nil, &block)
  content = body
  content = capture(&block) if block_given?
  storage_key = collapsible ? ui_alert_storage_key(collapse_key) : nil

  baldur_render 'baldur/components/alert',
                variant: variant,
                title: title,
                icon: icon,
                body: content,
                actions: actions,
                collapsible: collapsible,
                collapse_storage_key: storage_key,
                collapsed: collapsible && ui_alert_collapsed?(storage_key),
                collapsed_summary_action_label: collapsed_summary_action_label,
                class_name: class_name
end

#ui_checkbox_tag(name, label: nil, description: nil, value: '1', checked: false, required: false, disabled: false, id: nil, data: nil, aria: nil, form: nil, wrapper_class: nil, input_class: nil, &block) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'app/helpers/baldur/ui_helper_feedback.rb', line 49

def ui_checkbox_tag(name, label: nil, description: nil, value: '1', checked: false, required: false,
                    disabled: false, id: nil, data: nil, aria: nil, form: nil, wrapper_class: nil, input_class: nil, &block)
  body = block_given? ? capture(&block) : nil
  baldur_render 'baldur/components/checkbox',
                name: name,
                label: label,
                description: description,
                value: value,
                checked: checked,
                required: required,
                disabled: disabled,
                id: id,
                data: data,
                aria: aria,
                form: form,
                wrapper_class: wrapper_class,
                input_class: input_class,
                body: body
end

#ui_snackbar_stack(snackbars: [], id: nil, class_name: nil, data: nil) ⇒ Object



22
23
24
25
26
27
28
# File 'app/helpers/baldur/ui_helper_feedback.rb', line 22

def ui_snackbar_stack(snackbars: [], id: nil, class_name: nil, data: nil)
  baldur_render 'baldur/components/snackbar_stack',
                snackbars: normalize_snackbars(snackbars),
                id: id,
                class_name: class_name,
                data: data
end

#ui_snackbar_turbo_stream(flash, target: 'snackbar-stack', **stack_options) ⇒ Object



30
31
32
33
34
35
36
37
# File 'app/helpers/baldur/ui_helper_feedback.rb', line 30

def ui_snackbar_turbo_stream(flash, target: 'snackbar-stack', **stack_options)
  raise_missing_turbo_stream_helper! unless respond_to?(:turbo_stream)

  turbo_stream.update(
    target,
    html: ui_snackbar_stack(snackbars: snackbar_flash_payloads(flash), id: target, **stack_options)
  )
end