DFE-Digital/govuk-formbuilder

View on GitHub
lib/govuk_design_system_formbuilder/elements/check_boxes/label.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
module GOVUKDesignSystemFormBuilder
  module Elements
    module CheckBoxes
      class Label < Base
        using PrefixableArray

        include Traits::Localisation

        def initialize(builder, object_name, attribute_name, checkbox, value:, link_errors: true)
          super(builder, object_name, attribute_name)

          @checkbox    = checkbox
          @value       = value
          @link_errors = link_errors
        end

        def html
          @checkbox.label(for: field_id(link_errors: @link_errors), class: label_classes) do
            label_content.to_s
          end
        end

      private

        def label_classes
          %w(label checkboxes__label).prefix(brand)
        end

        def label_content
          [localised_text(:label), @checkbox.text, @value].find(&:presence)
        end
      end
    end
  end
end