Class: Fluxbit::Form::RangeInputComponent
- Inherits:
-
Component
- Object
- Component
- Fluxbit::Form::RangeInputComponent
- Defined in:
- app/components/fluxbit/form/range_input_component.rb
Instance Method Summary collapse
- #call ⇒ Object
- #id ⇒ Object
-
#initialize(form: nil, field: nil, sizing: :md, label: nil, helper_text: nil, helper_popover: nil, helper_popover_placement: "right", **props) ⇒ RangeInputComponent
constructor
A new instance of RangeInputComponent.
- #range ⇒ Object
Constructor Details
#initialize(form: nil, field: nil, sizing: :md, label: nil, helper_text: nil, helper_popover: nil, helper_popover_placement: "right", **props) ⇒ RangeInputComponent
Returns a new instance of RangeInputComponent.
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'app/components/fluxbit/form/range_input_component.rb', line 15 def initialize(form: nil, field: nil, sizing: :md, label: nil, helper_text: nil, helper_popover: nil, helper_popover_placement: "right", **props) super @form = form @field = field @object = form&.object @sizing = sizing.in?(styles[:sizes].keys) ? sizing : :md @props = props @label = label_value(label, @object, field, id) @helper_text = define_helper_text(helper_text, @object, field) @helper_popover = define_helper_popover(helper_popover, @object, field) @helper_popover_placement = helper_popover_placement @props[:type] = "range" add(class: styles[:sizes][@sizing], to: @props, first_element: true) add(class: styles[:base], to: @props, first_element: true) end |
Instance Method Details
#call ⇒ Object
48 49 50 |
# File 'app/components/fluxbit/form/range_input_component.rb', line 48 def call safe_join([ label, range, helper_text ]) end |
#id ⇒ Object
33 34 35 36 37 38 |
# File 'app/components/fluxbit/form/range_input_component.rb', line 33 def id return @id ||= (0...30).map { ("a".."z").to_a[rand(26)] }.join if @props[:id].nil? && @form.nil? return @props[:id] unless @props[:id].nil? "#{@form.object_name}_#{@field}" end |
#range ⇒ Object
40 41 42 43 44 45 46 |
# File 'app/components/fluxbit/form/range_input_component.rb', line 40 def range if @form.nil? content_tag :input, content, @props else @form.text_field(@field, **@props) end end |