Class: Ariadne::Form::Select::Component

Inherits:
BaseInputComponent show all
Defined in:
app/components/ariadne/form/select/component.rb

Constant Summary collapse

Choice =
Data.define(:name, :value, :selected)

Constants included from LabelHelper

LabelHelper::BASE_LABEL_STYLES

Constants inherited from BaseComponent

BaseComponent::ACCEPT_ANYTHING

Constants included from ViewHelper

ViewHelper::HELPERS

Constants included from AttributesHelper

AttributesHelper::PLURAL_ARIA_ATTRIBUTES, AttributesHelper::PLURAL_DATA_ATTRIBUTES

Instance Attribute Summary collapse

Attributes inherited from BaseInputComponent

#label_attributes

Instance Method Summary collapse

Methods inherited from BaseInputComponent

#add_label_classes, #form_control?, #full_width?, #hidden?, #html_attributes, #label_arguments

Methods included from LabelHelper

#label_styles, #render_label

Methods inherited from BaseComponent

audited_at, #class_for, #component, component_id, #component_id, component_name, generate_id, #html_attributes, i18n_scope, #merge_data_attributes, #merge_tailwind_classes, #options, stimulus_name, translate, #validate_aria_label!

Methods included from AttributesHelper

#aria, #data, #merge_aria, #merge_data, #merge_prefixed_attribute_hashes, #prepend_action, #prepend_controller, #prepend_data_attribute

Methods included from ViewComponent::StyleVariants

#merged_styles

Constructor Details

#initializeComponent

Returns a new instance of Component.



31
32
33
34
# File 'app/components/ariadne/form/select/component.rb', line 31

def initialize(**)
  super
  @choices = []
end

Instance Attribute Details

#choicesObject (readonly)

Returns the value of attribute choices.



21
22
23
# File 'app/components/ariadne/form/select/component.rb', line 21

def choices
  @choices
end

Instance Method Details

#select_stylesObject



48
49
50
# File 'app/components/ariadne/form/select/component.rb', line 48

def select_styles
  merge_tailwind_classes([style(:select), html_attrs[:class]].join(" "))
end

#selected?(choice) ⇒ Boolean

Returns:

  • (Boolean)


44
45
46
# File 'app/components/ariadne/form/select/component.rb', line 44

def selected?(choice)
  choice == selected_choice
end

#selected_choiceObject



40
41
42
# File 'app/components/ariadne/form/select/component.rb', line 40

def selected_choice
  @selected_choice ||= @choices.find(&:selected)
end

#with_choice(name:, value:, selected: false) ⇒ Object



36
37
38
# File 'app/components/ariadne/form/select/component.rb', line 36

def with_choice(name:, value:, selected: false)
  @choices << Choice.new(name:, value:, selected:)
end