File: single_stat_component.rb

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (62 lines) | stat: -rw-r--r-- 1,305 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
60
61
62
# frozen_string_literal: true

module Pajamas
  class SingleStatComponent < Pajamas::Component
    # @param [String] title
    # @param [String] stat_value
    # @param [String] stat_value_testid
    # @param [String] unit
    # @param [String] title_icon
    # @param [String] meta_text
    # @param [String] meta_icon
    # @param [Symbol] variant
    def initialize(
      title: nil,
      stat_value: nil,
      stat_value_testid: 'non-animated-value',
      unit: nil,
      title_icon: nil,
      meta_text: nil,
      meta_icon: nil,
      text_color: nil,
      variant: :muted
    )
      @title = title
      @stat_value = stat_value
      @stat_value_testid = stat_value_testid
      @unit = unit
      @title_icon = title_icon.to_s.presence
      @meta_text = meta_text
      @meta_icon = meta_icon
      @text_color = text_color
      @variant = filter_attribute(variant.to_sym, Pajamas::BadgeComponent::VARIANT_OPTIONS, default: :muted)
    end

    renders_one :title
    renders_one :stat_value

    private

    delegate :sprite_icon, to: :helpers

    def unit_class
      "gl-mr-2" unless unit?
    end

    def unit?
      @unit
    end

    def title_icon?
      @title_icon
    end

    def meta_icon?
      @meta_icon
    end

    def meta_text?
      @meta_text
    end
  end
end