Class: Fluxbit::Form::RangeInputComponent

Inherits:
Component
  • Object
show all
Defined in:
app/components/fluxbit/form/range_input_component.rb

Instance Method Summary collapse

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

#callObject



48
49
50
# File 'app/components/fluxbit/form/range_input_component.rb', line 48

def call
  safe_join([ label, range, helper_text ])
end

#idObject



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

#rangeObject



40
41
42
43
44
45
46
# File 'app/components/fluxbit/form/range_input_component.rb', line 40

def range
  if @form.nil?
     :input, content, @props
  else
    @form.text_field(@field, **@props)
  end
end