Class: HakumiComponents::Radio::Component
- Inherits:
-
BaseComponent
- Object
- ViewComponent::Base
- BaseComponent
- HakumiComponents::Radio::Component
- Extended by:
- T::Sig
- Includes:
- Concerns::FormField
- Defined in:
- app/components/hakumi_components/radio/component.rb
Constant Summary
Constants inherited from BaseComponent
BaseComponent::ControllerOptions, BaseComponent::DateInput, BaseComponent::DateLikeValue, BaseComponent::DimensionInput, BaseComponent::HtmlPayloadInput, BaseComponent::I18nOptionValue, BaseComponent::PresenceArray, BaseComponent::PresenceScalar, BaseComponent::PresenceValue, BaseComponent::RawHtmlInput, BaseComponent::SIZES, BaseComponent::SizeValue, BaseComponent::SymbolInput
Instance Method Summary collapse
- #data_controllers ⇒ Object
-
#initialize(name:, value: nil, text: nil, label: nil, caption: nil, checked: false, disabled: false, size: :default, id: nil, auto_focus: false, required: false, standalone: true, errors: [], **html_options) ⇒ Component
constructor
A new instance of Component.
- #label_text ⇒ Object
- #radio_classes ⇒ Object
- #wrapper_classes ⇒ Object
Methods included from Concerns::FormField
#describedby_ids, #error?, #error_message, #form_field_caption, #form_field_contract, #form_field_errors, #form_field_html_options, #form_field_label, #form_field_name, #form_field_required, #form_field_rules, #form_field_standalone, #form_item_attributes, #form_item_classes, #input_id, #render_caption, #render_error, #render_explain, #render_label, #standalone?
Methods included from Concerns::FormFieldInterface
Methods inherited from BaseComponent
#append_data_token, boolean_html_param, #build_inline_style, cast_boolean, #cast_boolean, #class_names, #component_classes, #data_attributes_from, #dimension_to_css, #ensure_dom_id!, float_html_param, #generate_id, #html_classes, html_param, html_primitive_param, #html_style, #i18n_scope, integer_html_param, #merge_attributes, #render_value, #size_to_pixels, #stimulus_attrs, string_html_param, string_or_symbol_array_html_param, symbol_html_param, #t_default, #translate_with_default, #validate_inclusion!, #validate_required!, #value_present?
Constructor Details
#initialize(name:, value: nil, text: nil, label: nil, caption: nil, checked: false, disabled: false, size: :default, id: nil, auto_focus: false, required: false, standalone: true, errors: [], **html_options) ⇒ Component
Returns a new instance of Component.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'app/components/hakumi_components/radio/component.rb', line 29 def initialize( name:, value: nil, text: nil, label: nil, caption: nil, checked: false, disabled: false, size: :default, id: nil, auto_focus: false, required: false, standalone: true, errors: [], ** ) @name = name @value = T.let(value, HakumiComponents::Types::FormFieldScalar) @text = text @label = label @caption = caption @checked = checked @disabled = disabled @size = size @id = T.let(id || generate_id("radio"), Types::FormFieldName) @auto_focus = auto_focus @required = required @standalone = standalone @errors = T.let(errors, Types::FormFieldErrors) @html_options = T.let(, Types::HtmlAttributes) @html_options[:id] ||= @id initialize_form_field_contract!( name: @name, label: @label, caption: @caption, errors: @errors, standalone: @standalone, required: @required, html_options: @html_options ) validate_props! end |
Instance Method Details
#data_controllers ⇒ Object
96 97 98 |
# File 'app/components/hakumi_components/radio/component.rb', line 96 def data_controllers "hakumi--radio" end |
#label_text ⇒ Object
101 102 103 |
# File 'app/components/hakumi_components/radio/component.rb', line 101 def label_text @text || content end |
#radio_classes ⇒ Object
85 86 87 88 89 90 91 92 93 |
# File 'app/components/hakumi_components/radio/component.rb', line 85 def radio_classes modifiers = { checked: @checked, disabled: @disabled } modifiers[@size] = true if @size != :default class_names("radio", modifiers) end |
#wrapper_classes ⇒ Object
74 75 76 77 78 79 80 81 82 |
# File 'app/components/hakumi_components/radio/component.rb', line 74 def wrapper_classes modifiers = { checked: @checked, disabled: @disabled } modifiers[@size] = true if @size != :default class_names("radio-wrapper", modifiers) end |