Sha256: 3969ab75c2f5465caaefa7dc9a8542a5df0d61d4535e28356bb1ef9899fd544d

Contents?: true

Size: 1.37 KB

Versions: 10

Compression:

Stored size: 1.37 KB

Contents

module GOVUKDesignSystemFormBuilder
  module Elements
    class Hint < Base
      using PrefixableArray

      include Traits::Localisation

      def initialize(builder, object_name, attribute_name, value: nil, text: nil, content: nil, radio: false, checkbox: false, **kwargs)
        super(builder, object_name, attribute_name)

        @value           = value
        @radio           = radio
        @checkbox        = checkbox
        @html_attributes = kwargs

        if content
          @raw = capture { content.call }
        else
          @text = retrieve_text(text)
        end
      end

      def active?
        [@text, @raw].any?(&:present?)
      end

      def html
        return unless active?

        tag.div(**hint_options, **@html_attributes) { hint_body }
      end

      def hint_id
        return unless active?

        build_id('hint')
      end

    private

      def hint_options
        { class: classes, id: hint_id }
      end

      def hint_body
        @raw || @text
      end

      def retrieve_text(supplied)
        supplied.presence || localised_text(:hint)
      end

      def classes
        %w(hint).prefix(brand).push(radio_class, checkbox_class).compact
      end

      def radio_class
        @radio ? %(#{brand}-radios__hint) : nil
      end

      def checkbox_class
        @checkbox ? %(#{brand}-checkboxes__hint) : nil
      end
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
govuk_design_system_formbuilder-3.1.2 lib/govuk_design_system_formbuilder/elements/hint.rb
govuk_design_system_formbuilder-3.1.1 lib/govuk_design_system_formbuilder/elements/hint.rb
govuk_design_system_formbuilder-3.1.0 lib/govuk_design_system_formbuilder/elements/hint.rb
govuk_design_system_formbuilder-3.0.3 lib/govuk_design_system_formbuilder/elements/hint.rb
govuk_design_system_formbuilder-3.0.3b1 lib/govuk_design_system_formbuilder/elements/hint.rb
govuk_design_system_formbuilder-3.0.2 lib/govuk_design_system_formbuilder/elements/hint.rb
govuk_design_system_formbuilder-3.0.1 lib/govuk_design_system_formbuilder/elements/hint.rb
govuk_design_system_formbuilder-3.0.0 lib/govuk_design_system_formbuilder/elements/hint.rb
govuk_design_system_formbuilder-3.0.0b2 lib/govuk_design_system_formbuilder/elements/hint.rb
govuk_design_system_formbuilder-3.0.0b1 lib/govuk_design_system_formbuilder/elements/hint.rb