Sha256: 9699f5b7876db9ccdf11542179a7046035d338e8c1d417ac1550da4e62e103d1

Contents?: true

Size: 1.11 KB

Versions: 42

Compression:

Stored size: 1.11 KB

Contents

# frozen_string_literal: true

module Ariadne
  module Forms
    module Dsl
      # :nodoc:
      class RadioButtonGroupInput < Input
        attr_reader :name, :label, :radio_buttons

        def initialize(name:, label: nil, **options)
          @name = name
          @label = label
          @radio_buttons = []

          super(**options)

          yield(self) if block_given?
        end

        def to_component
          component = Ariadne::Form::RadioButtonGroup::Component.new(name:, label:, **@options)
          @radio_buttons.each do |radio_button|
            component.rendered_radio_button(radio_button)
          end
          component
        end

        def type
          :radio_button_group
        end

        def autofocus!
          @radio_buttons.first&.autofocus!
        end

        def focusable?
          true
        end

        def radio_button(**options, &block)
          @radio_buttons << RadioButtonInput.new(
            builder: @builder, form: @form, name: @name, disabled: disabled?,
            **options,
            &block
          ).to_component
        end
      end
    end
  end
end

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
ariadne_view_components-0.0.93.2 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.93.1 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.93 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.92 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.91 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.90 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.89.1 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.89 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.88 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.87 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.86.9 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.86.8 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.86.7 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.86.6 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.86.5 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.86.4 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.86.3 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.86.2 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.86.1 lib/ariadne/forms/dsl/radio_button_group_input.rb
ariadne_view_components-0.0.86 lib/ariadne/forms/dsl/radio_button_group_input.rb