Class: Pajamas::AnimatedIconComponent
- Defined in:
- app/components/pajamas/animated_icon_component.rb
Constant Summary collapse
- VARIANT_CLASSES =
{ current: 'gl-animated-icon-current', default: 'gl-animated-icon-default', subtle: 'gl-animated-icon-subtle', strong: 'gl-animated-icon-strong', disabled: 'gl-animated-icon-disabled', link: 'gl-animated-icon-link', info: 'gl-animated-icon-info', warning: 'gl-animated-icon-warning', danger: 'gl-animated-icon-danger', success: 'gl-animated-icon-success' }.freeze
- ICONS =
[:chevron_down_up, :chevron_lg_down_up, :chevron_lg_right_down, :chevron_right_down, :smile, :duo_chat, :loader, :notifications, :sidebar, :sort, :star, :todo, :upload].freeze
Instance Method Summary collapse
- #icon_class ⇒ Object
-
#initialize(icon: :chevron_down_up, variant: :current, is_on: false, icon_options: {}) ⇒ AnimatedIconComponent
constructor
A new instance of AnimatedIconComponent.
Constructor Details
#initialize(icon: :chevron_down_up, variant: :current, is_on: false, icon_options: {}) ⇒ AnimatedIconComponent
Returns a new instance of AnimatedIconComponent.
26 27 28 29 30 31 |
# File 'app/components/pajamas/animated_icon_component.rb', line 26 def initialize(icon: :chevron_down_up, variant: :current, is_on: false, icon_options: {}) @icon = filter_attribute(icon.to_sym, ICONS) @variant = filter_attribute(variant&.to_sym, VARIANT_CLASSES.keys, default: :current) @is_on = is_on @icon_options = end |
Instance Method Details
#icon_class ⇒ Object
33 34 35 36 37 38 39 40 |
# File 'app/components/pajamas/animated_icon_component.rb', line 33 def icon_class classes = [VARIANT_CLASSES[@variant]] classes.push('gl-animated-sort-icon') if @icon == :sort classes.push('gl-animated-icon-on') if @is_on classes.push('gl-animated-icon-off') unless @is_on classes.push(@icon_options[:class]) if @icon_options[:class] classes.join(' ') end |