18F/identity-idp

View on GitHub
app/components/password_toggle_component.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
# frozen_string_literal: true

class PasswordToggleComponent < BaseComponent
  attr_reader :form, :field_options, :tag_options

  def initialize(
    form:,
    label: nil,
    toggle_label: nil,
    field_options: {},
    **tag_options
  )
    @form = form
    @label = label
    @toggle_label = toggle_label
    @field_options = field_options
    @tag_options = tag_options
  end

  def label
    @label || t('components.password_toggle.label')
  end

  def toggle_label
    @toggle_label || t('components.password_toggle.toggle_label')
  end

  def toggle_id
    "password-toggle-#{unique_id}"
  end

  def input_id
    field_options.dig(:input_html, :id) || "password-toggle-input-#{unique_id}"
  end
end