Class: Primer::Forms::TextField

Inherits:
BaseComponent show all
Defined in:
app/lib/primer/forms/text_field.rb

Overview

:nodoc:

Constant Summary collapse

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

Instance Method Summary collapse

Methods inherited from BaseComponent

compile!, #content, #input?, #perform_render, #render?, #to_component, #type

Methods included from ActsAsComponent

#compile!, extended, #renders_templates

Methods included from ClassNameHelper

#class_names

Constructor Details

#initialize(input:) ⇒ TextField

Returns a new instance of TextField.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/lib/primer/forms/text_field.rb', line 14

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

Instance Method Details

#auto_check_authenticity_tokenObject



36
37
38
39
40
41
42
43
44
45
# File 'app/lib/primer/forms/text_field.rb', line 36

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