Class: Maglev::Uikit::BadgeComponent

Inherits:
BaseComponent
  • Object
show all
Defined in:
app/components/maglev/uikit/badge_component.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from BaseComponent

#button_class_names

Constructor Details

#initialize(color:, icon_name: nil, disappear_after: nil, class_names: nil) ⇒ BadgeComponent

Returns a new instance of BadgeComponent.



19
20
21
22
23
24
# File 'app/components/maglev/uikit/badge_component.rb', line 19

def initialize(color:, icon_name: nil, disappear_after: nil, class_names: nil)
  @color = color
  @icon_name = icon_name
  @disappear_after = disappear_after.to_f
  @class_names = class_names
end

Instance Attribute Details

#class_namesObject (readonly)

Returns the value of attribute class_names.



17
18
19
# File 'app/components/maglev/uikit/badge_component.rb', line 17

def class_names
  @class_names
end

#colorObject (readonly)

Returns the value of attribute color.



17
18
19
# File 'app/components/maglev/uikit/badge_component.rb', line 17

def color
  @color
end

#disappear_afterObject (readonly)

Returns the value of attribute disappear_after.



17
18
19
# File 'app/components/maglev/uikit/badge_component.rb', line 17

def disappear_after
  @disappear_after
end

#icon_nameObject (readonly)

Returns the value of attribute icon_name.



17
18
19
# File 'app/components/maglev/uikit/badge_component.rb', line 17

def icon_name
  @icon_name
end

Instance Method Details

#badge_classes(**args) ⇒ Object



26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/components/maglev/uikit/badge_component.rb', line 26

def badge_classes(**args)
  class_variants(
    base: 'inline-flex items-center rounded-full px-1.5 py-0.5 text-xs font-medium gap-1',
    variants: {
      color: {
        green: 'bg-green-100 text-green-700',
        red: 'bg-red-100 text-red-700',
        gray: 'bg-gray-100 text-gray-700'
      }
    }
  ).render(**args, class: class_names)
end