Module: Playbook::PbFormsHelper
- Includes:
- PbFormsGlobalPropsHelper
- Included in:
- PbKitHelper
- Defined in:
- lib/playbook/pb_forms_helper.rb
Instance Method Summary collapse
-
#pb_form_with(data: {}, validate: false, loading: false, **kwargs, &block) ⇒ Object
Renders a pb form with ::Playbook::Forms::Builder, that can render Playbook kits in the most railsie way.
Instance Method Details
permalink #pb_form_with(data: {}, validate: false, loading: false, **kwargs, &block) ⇒ Object
Renders a pb form with ::Playbook::Forms::Builder, that can render Playbook kits in the most railsie way.
I.e.:
pb_form_with model: @user do |f|
f.text_field :name
end
The form can also validate the fields, and trigger the validation automatically:
I.e.:
pb_form_with model: @user, validate: true do |f|
f.text_field :name, required: true
end
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/playbook/pb_forms_helper.rb', line 28 def pb_form_with(data: {}, validate: false, loading: false, **kwargs, &block) global_props, = extract_all_props(kwargs) classnames = ["pb-form"] classnames << [:class] if [:class].present? classnames << "pb_form_loading" if loading classnames.concat(generate_prop_classes(global_props)) data = data.merge("pb-form-validation" => validate) = .merge( class: classnames.compact.join(" "), data: data, builder: ::Playbook::Forms::Builder ) content_for(:pb_js, javascript_tag(<<~JS)) window.addEventListener("DOMContentLoaded", function() { PbFormValidation.start() }) window.addEventListener("DOMContentLoaded", () => formHelper()) JS form_with(**, &block) end |