Sha256: b62af65ca316a4841699e390f827a49e34e2607da9b4f64ed194df64dbb22b3e

Contents?: true

Size: 1.36 KB

Versions: 64

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

module Primer
  module Forms
    # :nodoc:
    class TextField < BaseComponent
      delegate :builder, :form, to: :@input

      INPUT_WRAP_SIZE = {
        small: "FormControl-input-wrap--small",
        large: "FormControl-input-wrap--large"
      }.freeze

      def initialize(input:)
        @input = input

        @input.add_input_classes(
          "FormControl-input",
          Primer::Forms::Dsl::Input::SIZE_MAPPINGS[@input.size]
        )

        wrap_classes = [
          "FormControl-input-wrap",
          INPUT_WRAP_SIZE[input.size],
          { "FormControl-input-wrap--trailingAction": @input.show_clear_button? },
          { "FormControl-input-wrap--leadingVisual": @input.leading_visual? }
        ]
        wrap_classes << Primer::Forms::Dsl::Input::INPUT_WIDTH_MAPPINGS[@input.input_width] if @input.input_width

        @field_wrap_arguments = {
          class: class_names(wrap_classes),
          hidden: @input.hidden?
        }
      end

      def auto_check_authenticity_token
        return @auto_check_authenticity_token if defined?(@auto_check_authenticity_token)

        @auto_check_authenticity_token =
          if @input.auto_check_src
            @view_context.form_authenticity_token(
              form_options: { method: :post, action: @input.auto_check_src }
            )
          end
      end
    end
  end
end

Version data entries

64 entries across 64 versions & 1 rubygems

Version Path
openproject-primer_view_components-0.52.1 app/lib/primer/forms/text_field.rb
openproject-primer_view_components-0.52.0 app/lib/primer/forms/text_field.rb
openproject-primer_view_components-0.51.0 app/lib/primer/forms/text_field.rb
openproject-primer_view_components-0.50.1 app/lib/primer/forms/text_field.rb
openproject-primer_view_components-0.50.0 app/lib/primer/forms/text_field.rb
openproject-primer_view_components-0.49.2 app/lib/primer/forms/text_field.rb
openproject-primer_view_components-0.49.1 app/lib/primer/forms/text_field.rb
openproject-primer_view_components-0.49.0 app/lib/primer/forms/text_field.rb
openproject-primer_view_components-0.48.2 lib/primer/forms/text_field.rb
openproject-primer_view_components-0.48.1 lib/primer/forms/text_field.rb
openproject-primer_view_components-0.48.0 lib/primer/forms/text_field.rb
openproject-primer_view_components-0.47.1 lib/primer/forms/text_field.rb
openproject-primer_view_components-0.47.0 lib/primer/forms/text_field.rb
openproject-primer_view_components-0.46.1 lib/primer/forms/text_field.rb
openproject-primer_view_components-0.46.0 lib/primer/forms/text_field.rb
openproject-primer_view_components-0.45.0 lib/primer/forms/text_field.rb
openproject-primer_view_components-0.44.3 lib/primer/forms/text_field.rb
openproject-primer_view_components-0.44.2 lib/primer/forms/text_field.rb
openproject-primer_view_components-0.44.1 lib/primer/forms/text_field.rb
openproject-primer_view_components-0.44.0 lib/primer/forms/text_field.rb