Class: Fluxbit::Form::TextareaInputComponent

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

Instance Method Summary collapse

Constructor Details

#initialize(form: nil, field: nil, color: nil, label: nil, helper_text: nil, helper_popover: nil, helper_popover_placement: "right", shadow: false, **props) ⇒ TextareaInputComponent

rubocop: enable Layout/LineLength



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'app/components/fluxbit/form/textarea_input_component.rb', line 20

def initialize(form: nil, field: nil, color: nil, label: nil, helper_text: nil, helper_popover: nil,
               helper_popover_placement: "right", shadow: false, **props)
  super
  @form = form
  @object = form&.object
  @field = field
  @shadow = shadow
  @color = valid_color(color)
  @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

  add(class: styles[:shadow], to: @props, first_element: true) if shadow
  add(class: styles[:bg][@color], to: @props, first_element: true)
  add(class: styles[:base], to: @props, first_element: true)
end

Instance Method Details

#callObject



54
55
56
# File 'app/components/fluxbit/form/textarea_input_component.rb', line 54

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

#textareaObject



46
47
48
49
50
51
52
# File 'app/components/fluxbit/form/textarea_input_component.rb', line 46

def textarea
  if @form.nil?
     :textarea, content, @props
  else
    @form.text_area(@field, **@props)
  end
end

#valid_color(color) ⇒ Object



39
40
41
42
43
44
# File 'app/components/fluxbit/form/textarea_input_component.rb', line 39

def valid_color(color)
  return color if styles[:bg].key?(color)
  return :failure if errors.present?

  :default
end