You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Initially, the SDK will still call the backend for logic evaluation. Pushing the logic to the frontend will come at a later stage, but it will likely not be possible to completely eliminate backend logic (for things like service fetch/secrets that should not leave the server).
Logic checks run async and are (possibly) debounced, meaning there is noticeable delay from user input until the result/outcome of the logic check is known. One of the effects of such a logic check is that form values may be updated programmatically. The logic check only returns a diff of inputs that have changed to avoid race conditions with new user input provided between firing the check and receiving the response.
The formio-renderer must be able to handle partial updates on the form values to process the result of a logic check. The component rendering FormioForm is responsible for (imperatively) calling this.
Similarly, validation errors coming from step/form submission backend validation must be possible to be set by the parent component, as the frontend validation is not necessarily capable of figuring all this out (e.g. like the anti-prefill tampering protection).
The Formik implementation details should not leak so that if we need, we can swap the underlying Form library.
Tasks
Expose ref from FormioForm
Allow calling updateValues with partial updates, which must deep merge the Formik values
Allow calling updateErrors with partial updates, which must deep merge the Formik errors
The text was updated successfully, but these errors were encountered:
Initially, the SDK will still call the backend for logic evaluation. Pushing the logic to the frontend will come at a later stage, but it will likely not be possible to completely eliminate backend logic (for things like service fetch/secrets that should not leave the server).
Logic checks run async and are (possibly) debounced, meaning there is noticeable delay from user input until the result/outcome of the logic check is known. One of the effects of such a logic check is that form values may be updated programmatically. The logic check only returns a diff of inputs that have changed to avoid race conditions with new user input provided between firing the check and receiving the response.
The formio-renderer must be able to handle partial updates on the form values to process the result of a logic check. The component rendering
FormioForm
is responsible for (imperatively) calling this.Similarly, validation errors coming from step/form submission backend validation must be possible to be set by the parent component, as the frontend validation is not necessarily capable of figuring all this out (e.g. like the anti-prefill tampering protection).
The Formik implementation details should not leak so that if we need, we can swap the underlying Form library.
Tasks
ref
fromFormioForm
updateValues
with partial updates, which must deep merge the Formik valuesupdateErrors
with partial updates, which must deep merge the Formik errorsThe text was updated successfully, but these errors were encountered: