Class: LightningUiKit::BadgeComponent

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

Instance Method Summary collapse

Methods inherited from BaseComponent

#merge_classes

Methods included from HeroiconHelper

#heroicon

Constructor Details

#initialize(status: :default, progress: nil) ⇒ BadgeComponent

Returns a new instance of BadgeComponent.



4
5
6
7
# File 'app/components/lightning_ui_kit/badge_component.rb', line 4

def initialize(status: :default, progress: nil)
  @status = status
  @progress = progress
end

Instance Method Details

#classesObject



9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/components/lightning_ui_kit/badge_component.rb', line 9

def classes
  status_classes = case @status
  when :success
    "lui:bg-green-200 lui:text-zinc-500"
  when :warning
    "lui:bg-yellow-200 lui:text-zinc-500"
  when :error
    "lui:bg-red-600/80 lui:text-white"
  else
    "lui:bg-zinc-400/20 lui:text-zinc-500"
  end
  [defalt_classes, status_classes].join(" ")
end

#defalt_classesObject



65
66
67
# File 'app/components/lightning_ui_kit/badge_component.rb', line 65

def defalt_classes
  "lui:relative lui:inline-flex lui:items-center lui:relative lui:gap-x-1.5 lui:rounded-[10px] lui:px-2.5 lui:py-1 lui:text-sm lui:font-medium lui:sm:text-xs lui:forced-colors:outline"
end

#default_progress_classesObject



61
62
63
# File 'app/components/lightning_ui_kit/badge_component.rb', line 61

def default_progress_classes
  "lui:h-2 lui:w-2 lui:rounded-[3px] lui:border-[1px]"
end

#progress_classesObject



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'app/components/lightning_ui_kit/badge_component.rb', line 23

def progress_classes
  progress_classes = case @progress
  when :complete
    case @status
    when :success
      "lui:bg-green-600 lui:border-green-600"
    when :warning
      "lui:bg-yellow-400 lui:border-yellow-400"
    when :error
      "lui:bg-red-700 lui:border-red-700"
    else
      "lui:bg-zinc-400 lui:border-zinc-400"
    end
  when :incomplete
    case @status
    when :error
      "lui:bg-transparent lui:border-white"
    else
      "lui:bg-transparent lui:border-zinc-400"
    end
  when :partialy_complete
    partialy_complete_classes = "lui:relative lui:after:w-[3.75px] lui:after:h-[8.2px]\
     lui:after:border-transparent lui:after:border-[1px] lui:after:-rotate-45 lui:after:absolute lui:after:-top-[1px]\
     lui:after:left-[1px] lui:after:margin-0 lui:after-margin-y-[1px]"
    case @status
    when :success
      "#{partialy_complete_classes} lui:border-green-600 lui:after:border-l-green-600 lui:after:border-r-green-600"
    when :warning
      "#{partialy_complete_classes} lui:border-yellow-400 lui:after:border-l-yellow-400 lui:after:border-r-yellow-400"
    when :error
      "#{partialy_complete_classes} lui:border-white lui:after:border-l-white lui:after:border-r-white"
    else
      "#{partialy_complete_classes} lui:border-zinc-400 lui:after:border-l-zinc-400 lui:after:border-r-zinc-400"
    end
  end
  [default_progress_classes, progress_classes].join(" ")
end