Module: LocoMotion::Concerns::IconableComponent

Overview

The IconableComponent concern provides functionality for components that display icons. It supports both left and right icons and allows for customization of their CSS classes and HTML attributes.

Instance Method Summary collapse

Instance Method Details

#has_icons?Boolean

Determines if any icons are present in the component.

Returns:

  • (Boolean)

    true if any icons are configured, false otherwise



147
148
149
# File 'lib/loco_motion/concerns/iconable_component.rb', line 147

def has_icons?
  @left_icon.present? || @right_icon.present?
end

#left_icon_htmlHash

Returns the HTML attributes for the left icon.

Returns:

  • (Hash)

    HTML attributes for the left icon



129
130
131
# File 'lib/loco_motion/concerns/iconable_component.rb', line 129

def left_icon_html
  { class: @left_icon_css }.merge(@left_icon_html)
end

#render_left_iconString Also known as: render_icon

Renders the left icon through the loco_icon engine.

Returns:

  • (String)

    The rendered HTML for the icon



156
157
158
159
160
# File 'lib/loco_motion/concerns/iconable_component.rb', line 156

def render_left_icon
  return if @left_icon.blank?

  render_managed_icon(:left)
end

#render_right_iconString

Renders the right icon.

Returns:

  • (String)

    The rendered HTML for the icon



168
169
170
171
172
# File 'lib/loco_motion/concerns/iconable_component.rb', line 168

def render_right_icon
  return if @right_icon.blank?

  render_managed_icon(:right)
end

#right_icon_htmlHash

Returns the HTML attributes for the right icon.

Returns:

  • (Hash)

    HTML attributes for the right icon



138
139
140
# File 'lib/loco_motion/concerns/iconable_component.rb', line 138

def right_icon_html
  { class: @right_icon_css }.merge(@right_icon_html)
end