Module: HotwireClub::Toolbox::OptimisticFormHelper

Defined in:
app/helpers/hotwire_club/toolbox/optimistic_form_helper.rb

Overview

View helpers that wrap form_with / form_for with the optimistic-UI form builder and Stimulus wiring.

optimistic_form_for photo, attribute_name: :favorite, value: !photo.favorite do |form|
form.optimistic_template dom_id(photo, "favorite-button"), favorite_button_icon(!photo.favorite)
form.button { favorite_button_icon(photo.favorite) }
end

Pass +attribute_name:+/+value:+ to have a hidden field injected automatically, or call form.optimistic_hidden_field yourself to place it.

Instance Method Summary collapse

Instance Method Details

#optimistic_form_for(record, attribute_name: nil, value: OptimisticFormBuilder::UNSET, **options, &block) ⇒ Object



23
24
25
26
27
28
29
30
# File 'app/helpers/hotwire_club/toolbox/optimistic_form_helper.rb', line 23

def optimistic_form_for(record, attribute_name: nil, value: OptimisticFormBuilder::UNSET, **options, &block)
  options[:builder] = OptimisticFormBuilder
  enrich_form_with_optimistic_options(options)

  form_for(record, **options) do |form|
    optimistic_form_body(form, attribute_name, value, &block)
  end
end

#optimistic_form_with(attribute_name: nil, value: OptimisticFormBuilder::UNSET, **options, &block) ⇒ Object



14
15
16
17
18
19
20
21
# File 'app/helpers/hotwire_club/toolbox/optimistic_form_helper.rb', line 14

def optimistic_form_with(attribute_name: nil, value: OptimisticFormBuilder::UNSET, **options, &block)
  options[:builder] = OptimisticFormBuilder
  enrich_form_with_optimistic_options(options)

  form_with(**options) do |form|
    optimistic_form_body(form, attribute_name, value, &block)
  end
end