class Primer::Forms::Button

:nodoc:

def initialize(input:, type: :button)

def initialize(input:, type: :button)
  @input = input
  @type = type
  @input.add_input_classes("FormField-input flex-self-start")
  @input.merge_input_arguments!(tag_attributes.deep_symbolize_keys)
  # rails uses a string for this, but PVC wants a symbol
  @input.merge_input_arguments!(type: type.to_sym)
end

def input_arguments

def input_arguments
  @input_arguments ||= @input.input_arguments.deep_dup.tap do |args|
    # rails uses :class but PVC wants :classes
    args[:classes] = class_names(
      args[:classes],
      args.delete(:class)
    )
  end
end

def tag_attributes

def tag_attributes
  case @type
  when :submit
    ButtonAttributeGenerator.submit_tag_attributes(@input.label, name: @input.name)
  else
    ButtonAttributeGenerator.button_tag_attributes(@input.label, name: @input.name)
  end
end