RadioButton
Tuning...
bin/rails g quicksilver_ui:form RadioButton
Default
app_form_with(url: "#") do |form|
form.radio_button :something_1, :tag_value
end
Checked
app_form_with(url: "#") do |form|
form.radio_button :something_2, :tag_value, checked: true
end
Disabled
app_form_with(url: "#") do |form|
form.radio_button :something_3, :tag_value, disabled: true
end
Disabled and checked
app_form_with(url: "#") do |form|
form.radio_button :something, :tag_value, checked: true, disabled: true
end
Implementation
# frozen_string_literal: true
class Form::RadioButton < Form::BaseTag
ALLOWED_OPTIONS = [:checked, :tag_value].freeze
class << self
def allowed_options
super + ALLOWED_OPTIONS
end
end
prop :tag_value, _Any, reader: :private
def view_template
input(type: :radio, class: classes, data:, **options_with_defaults)
end
private
def default_classes
"ui-form-radio"
end
def default_options
checked_value = if form.object&.respond_to?(method)
value == form.object.public_send(method)
else
false
end
super.merge(checked: checked_value)
end
def value
options[:value]
end
end