Module: SegmentedControlHelper
- Defined in:
- app/helpers/segmented_control_helper.rb
Instance Method Summary collapse
- #icon(icon, options = {}) ⇒ Object
-
#segmented_control(options = {}) ⇒ Object
Returns a component.
- #segmented_control_item(options = {}) ⇒ Object
- #sr_only(text, options = {}) ⇒ Object
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, = {}) return "" unless icon.present? = (, aria: { hidden: true }, class: "icon-#{icon}") content_tag(:i, ) { "" } end |
#segmented_control(options = {}) ⇒ Object
Returns a component
17 18 19 |
# File 'app/helpers/segmented_control_helper.rb', line 17 def segmented_control( = {}) component(defaults: { class: 'segmented-control' }, 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( = {}) pressed = !!.delete(:pressed) icon = .delete(:icon) title = .delete(:title) = ({ aria: { pressed: pressed.to_s }, type: :button }, ) content_tag(:li, class: 'segmented-control-item') do content_tag(:button, ) 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, = {}) return "" unless text.present? = (, class: 'sr-only') content_tag(:span, ) { text } end |