File: settings_section_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 (35 lines) | stat: -rw-r--r-- 796 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
# frozen_string_literal: true

module Layouts
  class SettingsSectionComponent < ViewComponent::Base
    # @param [String] heading
    # @param [String] description
    # @param [String] id
    # @param [String] testid
    # @param [Hash] options
    def initialize(heading, description: nil, id: nil, testid: nil, options: {})
      @heading = heading
      @description = description
      @id = id
      @testid = testid
      @options = options
    end

    renders_one :heading
    renders_one :description
    renders_one :body

    def options_attrs
      data = @options[:data] || {}
      data[:testid] ||= @testid

      attrs = {
        class: [@options[:class]].flatten.compact,
        data: data
      }
      attrs[:id] = @id if @id

      @options.merge(attrs)
    end
  end
end