Sha256: 9a651765f1514c087ed08cd4a7f6b92cc2db4d634f18fc131df1671f2cd22c5f

Contents?: true

Size: 1.08 KB

Versions: 151

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

module Primer
  module Forms
    # :nodoc:
    class CheckBox < BaseComponent
      delegate :builder, :form, to: :@input

      def initialize(input:)
        @input = input
        @input.add_label_classes("FormControl-label")
        @input.add_input_classes("FormControl-checkbox")

        return unless @input.scheme == :array

        @input.input_arguments[:multiple] = true
        @input.label_arguments[:value] = checked_value
      end

      def nested_form_arguments
        return @nested_form_arguments if defined?(@nested_form_arguments)

        @nested_form_arguments = { hidden: @input.hidden?, **@input.nested_form_arguments }
        @nested_form_arguments[:class] = class_names(
          @nested_form_arguments[:class],
          @nested_form_arguments.delete(:classes),
          "ml-4"
        )

        @nested_form_arguments
      end

      private

      def checked_value
        @input.value || "1"
      end

      def unchecked_value
        return if @input.scheme == :array

        @input.unchecked_value || "0"
      end
    end
  end
end

Version data entries

151 entries across 151 versions & 2 rubygems

Version Path
primer_view_components-0.20.0 lib/primer/forms/check_box.rb
openproject-primer_view_components-0.23.0 lib/primer/forms/check_box.rb
primer_view_components-0.19.0 lib/primer/forms/check_box.rb
openproject-primer_view_components-0.22.2 lib/primer/forms/check_box.rb
primer_view_components-0.18.2 lib/primer/forms/check_box.rb
openproject-primer_view_components-0.22.1 lib/primer/forms/check_box.rb
primer_view_components-0.18.1 lib/primer/forms/check_box.rb
openproject-primer_view_components-0.22.0 lib/primer/forms/check_box.rb
primer_view_components-0.18.0 lib/primer/forms/check_box.rb
openproject-primer_view_components-0.21.0 lib/primer/forms/check_box.rb
primer_view_components-0.17.0 lib/primer/forms/check_box.rb
openproject-primer_view_components-0.20.0 lib/primer/forms/check_box.rb
primer_view_components-0.16.1 lib/primer/forms/check_box.rb
primer_view_components-0.16.0 lib/primer/forms/check_box.rb
openproject-primer_view_components-0.19.0 lib/primer/forms/check_box.rb
primer_view_components-0.15.1 lib/primer/forms/check_box.rb
primer_view_components-0.15.0 lib/primer/forms/check_box.rb
openproject-primer_view_components-0.18.1 lib/primer/forms/check_box.rb
openproject-primer_view_components-0.17.1 lib/primer/forms/check_box.rb
openproject-primer_view_components-0.17.0 lib/primer/forms/check_box.rb