Class: Primer::Forms::TextField
- Inherits:
-
BaseComponent
- Object
- BaseComponent
- Primer::Forms::TextField
- 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
- #auto_check_authenticity_token ⇒ Object
-
#initialize(input:) ⇒ TextField
constructor
A new instance of TextField.
- #trailing_visual_component ⇒ Object
Methods inherited from BaseComponent
#content, inherited, #input?, #perform_render, #render?, #to_component, #type
Methods included from ActsAsComponent
#base_template_path, #compile!, extended, #renders_templates, #template_root_path
Methods included from ClassNameHelper
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 |
# 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] ) @field_wrap_arguments = { class: class_names( "FormControl-input-wrap", INPUT_WRAP_SIZE[input.size], "FormControl-input-wrap--trailingAction": @input., "FormControl-input-wrap--trailingVisual": @input.trailing_visual?, "FormControl-input-wrap--leadingVisual": @input.leading_visual? ), hidden: @input.hidden? } end |
Instance Method Details
#auto_check_authenticity_token ⇒ Object
34 35 36 37 38 39 40 41 42 43 |
# File 'app/lib/primer/forms/text_field.rb', line 34 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 |
#trailing_visual_component ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'app/lib/primer/forms/text_field.rb', line 45 def trailing_visual_component return @trailing_visual_component if defined?(@trailing_visual_component) visual = @input.trailing_visual # Render icon if specified @trailing_visual_component = if (icon_arguments = visual[:icon]) Primer::Beta::Octicon.new(**icon_arguments) elsif (label_arguments = visual[:label]) # Render label if specified label_arguments[:classes] = class_names( label_arguments.delete(:classes), "FormControl-input-trailingVisualLabel" ) text = label_arguments.delete(:text) Primer::Beta::Label.new(**label_arguments).with_content(text) elsif (counter_arguments = visual[:counter]) # Render counter if specified counter_arguments[:classes] = class_names( counter_arguments.delete(:classes), "FormControl-input-trailingVisualCounter" ) Primer::Beta::Counter.new(**counter_arguments) elsif (truncate_arguments = visual[:text]) # Render text if specified truncate_arguments[:classes] = class_names( truncate_arguments.delete(:classes), "FormControl-input-trailingVisualText" ) text = truncate_arguments.delete(:text) Primer::Beta::Truncate.new(**truncate_arguments).with_content(text) end end |