Module: SegmentedControlHelper

Defined in:
app/helpers/segmented_control_helper.rb

Instance Method Summary collapse

Instance Method Details

#icon(icon, options = {}) ⇒ Object



2
3
4
5
6
7
# File 'app/helpers/segmented_control_helper.rb', line 2

def icon(icon, options = {})
  return "" unless icon.present?

  options = combine_options(options, aria: { hidden: true }, class: "icon-#{icon}")
  (:i, options) { "" }
end

#segmented_control(options = {}) ⇒ Object

Returns a component



17
18
19
# File 'app/helpers/segmented_control_helper.rb', line 17

def segmented_control(options = {})
  component(defaults: { class: 'segmented-control' }, options: options) { yield if block_given? }
end

#segmented_control_item(options = {}) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
# File 'app/helpers/segmented_control_helper.rb', line 21

def segmented_control_item(options = {})
  pressed = !!options.delete(:pressed)
  icon = options.delete(:icon)
  title = options.delete(:title)
  options = combine_options({ aria: { pressed: pressed.to_s }, type: :button }, options)
  (:li, class: 'segmented-control-item') do
    (:button, options) do
      icon(icon) + sr_only(title) + (block_given? ? yield : '')
    end
  end
end

#sr_only(text, options = {}) ⇒ Object



9
10
11
12
13
14
# File 'app/helpers/segmented_control_helper.rb', line 9

def sr_only(text, options = {})
  return "" unless text.present?

  options = combine_options(options, class: 'sr-only')
  (:span, options) { text }
end