Sha256: 046a76f1bb911c6c47d8d94295fd4da9840f64183721f2996066eb6e3f8d7d93

Contents?: true

Size: 1.01 KB

Versions: 23

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

module Phlexi
  module Form
    module Components
      class CollectionRadioButtons < Base
        include Concerns::HandlesInput
        include Concerns::AcceptsChoices

        def view_template
          div(**attributes.slice(:id, :class)) do
            field.repeated(choices.values) do |builder|
              render builder.hidden_field_tag if builder.index == 0

              field = builder.field(
                label: choices[builder.key],
                # We set the attributes here so they are applied to all input components even if the user decides to use a block
                input_attributes: {
                  checked_value: builder.key,
                  checked: selected?(builder.key)
                }
              )
              if block_given?
                yield field
              else
                render field.radio_button_tag
                render field.label_tag
              end
            end
          end
        end
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
phlexi-form-0.8.5 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.8.3 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.8.2 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.8.1 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.8.0 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.7.2 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.7.1 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.7.0 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.6.2 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.6.1 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.6.0 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.5.11 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.5.10 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.5.9 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.5.8 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.5.7 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.5.6 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.5.5 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.5.4 lib/phlexi/form/components/collection_radio_buttons.rb
phlexi-form-0.5.3 lib/phlexi/form/components/collection_radio_buttons.rb