Sha256: 8d0dadd891c15813fb8f7b664c289714488c9fae212d8d3899f42ecb78c31013

Contents?: true

Size: 1014 Bytes

Versions: 33

Compression:

Stored size: 1014 Bytes

Contents

# frozen_string_literal: true

module Phlexi
  module Form
    module Components
      class InputArray < Base
        include Concerns::HandlesInput
        include Concerns::HandlesArrayInput

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

              field = builder.field(
                label: builder.key,
                # we expect key to be an integer string starting from "1"
                value: values[builder.index]
              )
              if block_given?
                yield field
              else
                render field.input_tag
              end
            end
          end
        end

        protected

        def build_attributes
          super

          attributes[:multiple] = true
        end

        private

        def values
          @values ||= Array(field.value)
        end
      end
    end
  end
end

Version data entries

33 entries across 33 versions & 1 rubygems

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