Sha256: 128e0e6048e432c9ef355d281c446c6722af2437ab3b99c31d05d347a568257d

Contents?: true

Size: 902 Bytes

Versions: 1

Compression:

Stored size: 902 Bytes

Contents

# frozen_string_literal: true

module Primer
  module Forms
    module Dsl
      # :nodoc:
      class InputGroup
        include InputMethods

        attr_reader :builder, :form, :system_arguments

        def initialize(builder:, form:, **system_arguments)
          @builder = builder
          @form = form
          @system_arguments = system_arguments

          yield(self) if block_given?
        end

        def to_component
          Group.new(inputs: inputs, builder: builder, form: form, **@system_arguments)
        end

        def type
          :group
        end

        def input?
          true
        end

        # Avoid using Rails delegation here for performance reasons
        # rubocop:disable Rails/Delegate
        def render_in(view_context)
          to_component.render_in(view_context)
        end
        # rubocop:enable Rails/Delegate
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
primer_view_components-0.0.86 lib/primer/forms/dsl/input_group.rb