Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is it possible to clear form errors programatically? #4079

Closed
1 task done
roman-gula opened this issue Feb 4, 2024 · 2 comments · Fixed by #4103
Closed
1 task done

Is it possible to clear form errors programatically? #4079

roman-gula opened this issue Feb 4, 2024 · 2 comments · Fixed by #4103
Labels

Comments

@roman-gula
Copy link

Prerequisites

What theme are you using?

core

What is your question?

I use rjsf in form wizard and depending on step I change schema in the form.
Wizard allows to move to different steps even if previous forms was not filled or with errors. If step has some errors, values with errors are not populated to the form data.

When

  1. I run validation on wizard step A and some errors are shown
  2. I go to another step B, schema is changed and different form without errors is displayed
  3. I return back to the step A

the errors are still visible

But I need clear errors before (or after) moving to another step

So is it possible to clear errors programatically?

@roman-gula roman-gula added needs triage Initial label given, to be assigned correct labels and assigned question labels Feb 4, 2024
@MarekBodingerBA
Copy link
Contributor

We also have multistep form and we force re-rendering of the form component using key. Maybe that would help you.
https://github.com/bratislava/konto.bratislava.sk/blob/8b0be6ed18c39e2a3fee28bcb0a3fcf90a8b9b1e/next/components/forms/FormPage.tsx#L59

However, it's a good question how should the form component behave when schema is changed.

@heath-freenome
Copy link
Member

heath-freenome commented Feb 16, 2024

@roman-gula @MarekBodingerBA It totally makes sense for the Form to detect a change in the schema and reset its state. That currently does not happen. Would either of you be interested in making a PR to fix this? It would involve updating the Form in core (probably the getSnapshotBeforeUpdate(), componentDidUpdate() and getStateFromProps() functions) to reset state when the old and new schema props are different.

In the meantime, if you have a ref to the form, you should be able to call the reset() function.

@heath-freenome heath-freenome added help wanted feature Is a feature request and removed needs triage Initial label given, to be assigned correct labels and assigned labels Feb 16, 2024
abdalla-rko pushed a commit to abdalla-rko/react-jsonschema-form that referenced this issue Feb 23, 2024
abdalla-rko pushed a commit to abdalla-rko/react-jsonschema-form that referenced this issue Feb 23, 2024
abdalla-rko pushed a commit to abdalla-rko/react-jsonschema-form that referenced this issue Feb 24, 2024
abdalla-rko pushed a commit to abdalla-rko/react-jsonschema-form that referenced this issue Feb 25, 2024
abdalla-rko pushed a commit to abdalla-rko/react-jsonschema-form that referenced this issue Feb 27, 2024
abdalla-rko pushed a commit to abdalla-rko/react-jsonschema-form that referenced this issue Mar 1, 2024
nickgros pushed a commit that referenced this issue Mar 1, 2024
* #4079 Fixed the issue where the error state was not resetting when the schema changed.

* #4079 Updated the changelog

* #4079 Improved previous and new schema check

* #4079 Added test

* #4079 improved test

* #4079 removing console.log

* Apply suggestions from code review

- Accepted reviewer feedback

---------

Co-authored-by: Abdallah Al-Soqatri <abdallah.al-soqatri@aspentech.com>
Co-authored-by: Heath C <51679588+heath-freenome@users.noreply.github.com>
nickgros added a commit that referenced this issue Apr 19, 2024
Co-authored-by: Heath C <51679588+heath-freenome@users.noreply.github.com>
Co-authored-by: Abdallah Al-Soqatri <abdallah.al-soqatri@aspentech.com>
Co-authored-by: Kevin Burnett <18027+burnettk@users.noreply.github.com>
Co-authored-by: Marek Bodinger <marek.bodinger@gmail.com>
Co-authored-by: Mehdi Salem <mehdi.salem@qt.io>
Co-authored-by: Jonasz Wiącek <jonaszwiacek@gmail.com>
Co-authored-by: Bogdan Savluk <savluk.bogdan@gmail.com>
Co-authored-by: Christian Wendt <54559756+cwendtxealth@users.noreply.github.com>
Co-authored-by: Ben Lambert <ben@blam.sh>
Co-authored-by: David R. Bild <david@davidbild.org>
Co-authored-by: Ariqun <38001928+Ariqun@users.noreply.github.com>
Co-authored-by: Shivam Anand Murmu <35562703+Rozamo@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Shubham Biswas <46351104+Shubhcoder@users.noreply.github.com>
Co-authored-by: popmanhe <neo_temp@hotmail.com>
Co-authored-by: Yuki Aoki <me@aoki.app>
Co-authored-by: Xiangcheng Kuo <37873394+orange-guo@users.noreply.github.com>
Co-authored-by: Bart van Andel <bavanandel@gmail.com>
Co-authored-by: Laurent Direr <laurent.direr@gmail.com>
Co-authored-by: Vegard Stenvik <42935080+vstenvik@users.noreply.github.com>
Co-authored-by: Appie <abdallarko@hotmail.com>
Co-authored-by: Oren Forer <oforer@gmail.com>
Co-authored-by: Marcus Penn <11893741+mpenndev@users.noreply.github.com>
Co-authored-by: joachimhagheim <47362824+joachimhagheim@users.noreply.github.com>
Co-authored-by: MarekBodingerBA <104828482+MarekBodingerBA@users.noreply.github.com>
Co-authored-by: momesana <momesana@gmail.com>
Co-authored-by: Martti Roitto <MarttiR@users.noreply.github.com>
fix(utils): direct lodash function import to improve bundling on library client side (#3976)
fix: #3961 resolve all recurse list for object properties (#3981)
fix gap in outline when label is hidden (#3984)
Fix: Expose the internal `ajv` variable in the validator implementation classes (#3991)
Fixes: #3972 indirectly by exposing the `ajv` variable for use in the issue
Fix: Change FormHelperText usage with @mui/material to render divs (#4032)
Fixes #4031 by switching the render component for `FormHelperText` to be `div`
fix: Added support for anyOf/oneOf in uiSchema (#4055)
Fixes #4039 by updating `MultiSchemaField` to properly support `anyOf`/`oneOf` arrays in the `uiSchema`
Fix checkbox with 0 as a value was unselectable in antd (#4068)
Fixed #4067 by properly dealing with enums that have 0 as a value
Fix potential XSS in the preview button of FileWidget (#4065)
Fix: Make 'ui:rows' option work with chakra-ui for textarea elements #4070 (#4078)
Fix typo in ErrorsListTemplate example (#4087)
Fix #4080 by moving `base64` encoder/decoder from `@rjsf/utils` to playground (#4093)
Fix: Error state not resetting when schema changes (#4079) (#4103)
Fix noImplicitAny error (#4106)
Fixes: [WARNING] Duplicate key "include" in object literal [duplicate-object-key] (#4114)
Fixes: Warning: validateDOMNesting(...): <p> cannot appear as a descendant of <p>. (#4117)
Fix documentation to add missing Form imports (#4131)
Fix #4127 to add missing `Form` import in documentation
Fix: filename should be bold (#4125)
Fix: use correct ConfigProvider context by using named imports (#4132)
Fix 4134 by filtering out bad DOM props (#4140)
Fixes: #4134 by updating the spreading of props onto the `TextField` to remove bad DOM fields
Fixed Programmatic submit not working properly in Firefox (#4150)
Fix Maximum call stack size exceeded in findSchemaDefinition (#4123)
nickgros added a commit that referenced this issue Aug 18, 2024
Co-authored-by: Heath C <51679588+heath-freenome@users.noreply.github.com>
Co-authored-by: Abdallah Al-Soqatri <abdallah.al-soqatri@aspentech.com>
Co-authored-by: Kevin Burnett <18027+burnettk@users.noreply.github.com>
Co-authored-by: Marek Bodinger <marek.bodinger@gmail.com>
Co-authored-by: Mehdi Salem <mehdi.salem@qt.io>
Co-authored-by: Nick Grosenbacher <nickgrosenbacher@gmail.com>
Co-authored-by: Abdallah Al-Soqatri <abdallah.al-soqatri@inmation.com>
Co-authored-by: Jonasz Wiącek <jonaszwiacek@gmail.com>
Co-authored-by: Bogdan Savluk <savluk.bogdan@gmail.com>
Co-authored-by: Christian Wendt <54559756+cwendtxealth@users.noreply.github.com>
Co-authored-by: Ben Lambert <ben@blam.sh>
Co-authored-by: David R. Bild <david@davidbild.org>
Co-authored-by: Ariqun <38001928+Ariqun@users.noreply.github.com>
Co-authored-by: Shivam Anand Murmu <35562703+Rozamo@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Shubham Biswas <46351104+Shubhcoder@users.noreply.github.com>
Co-authored-by: popmanhe <neo_temp@hotmail.com>
Co-authored-by: Yuki Aoki <me@aoki.app>
Co-authored-by: Xiangcheng Kuo <37873394+orange-guo@users.noreply.github.com>
Co-authored-by: Bart van Andel <bavanandel@gmail.com>
Co-authored-by: Laurent Direr <laurent.direr@gmail.com>
Co-authored-by: Vegard Stenvik <42935080+vstenvik@users.noreply.github.com>
Co-authored-by: Appie <abdallarko@hotmail.com>
Co-authored-by: Oren Forer <oforer@gmail.com>
Co-authored-by: Marcus Penn <11893741+mpenndev@users.noreply.github.com>
Co-authored-by: joachimhagheim <47362824+joachimhagheim@users.noreply.github.com>
Co-authored-by: MarekBodingerBA <104828482+MarekBodingerBA@users.noreply.github.com>
Co-authored-by: momesana <momesana@gmail.com>
Co-authored-by: Martti Roitto <MarttiR@users.noreply.github.com>
Co-authored-by: Serge van den Oever <serge@macaw.nl>
Co-authored-by: Enzo Ferey <hello@enzoferey.com>
Co-authored-by: Skyf0l <tom.rorato@gmail.com>
Co-authored-by: Jaejoon Han <jj2726@gmail.com>
Co-authored-by: とまとみ <tomatommy.bs@gmail.com>
Co-authored-by: Daniel Todd <todddaniel@gmail.com>
Co-authored-by: Dmitry Dzhus <dima@dzhus.org>
Co-authored-by: Alexander Kachkaev <alexander@kachkaev.ru>
Co-authored-by: shaddollxz <56341682+shaddollxz@users.noreply.github.com>
Co-authored-by: Changyu Geng <gcyyq@hotmail.com>
Co-authored-by: Helen Lin <46795546+helen-m-lin@users.noreply.github.com>
Co-authored-by: solimant <solimant@users.noreply.github.com>
Co-authored-by: David Li <davidli@cs.stanford.edu>
fix(utils): direct lodash function import to improve bundling on library client side (#3976)
fix: #3961 resolve all recurse list for object properties (#3981)
fix gap in outline when label is hidden (#3984)
Fix: Expose the internal `ajv` variable in the validator implementation classes (#3991)
Fixes: #3972 indirectly by exposing the `ajv` variable for use in the issue
Fix: Change FormHelperText usage with @mui/material to render divs (#4032)
Fixes #4031 by switching the render component for `FormHelperText` to be `div`
fix: Added support for anyOf/oneOf in uiSchema (#4055)
Fixes #4039 by updating `MultiSchemaField` to properly support `anyOf`/`oneOf` arrays in the `uiSchema`
Fix checkbox with 0 as a value was unselectable in antd (#4068)
Fixed #4067 by properly dealing with enums that have 0 as a value
Fix potential XSS in the preview button of FileWidget (#4065)
Fix: Make 'ui:rows' option work with chakra-ui for textarea elements #4070 (#4078)
Fix typo in ErrorsListTemplate example (#4087)
Fix #4080 by moving `base64` encoder/decoder from `@rjsf/utils` to playground (#4093)
Fix: Error state not resetting when schema changes (#4079) (#4103)
Fix noImplicitAny error (#4106)
Fixes: [WARNING] Duplicate key "include" in object literal [duplicate-object-key] (#4114)
Fixes: Warning: validateDOMNesting(...): <p> cannot appear as a descendant of <p>. (#4117)
Fix documentation to add missing Form imports (#4131)
Fix #4127 to add missing `Form` import in documentation
Fix: filename should be bold (#4125)
Fix: use correct ConfigProvider context by using named imports (#4132)
Fix 4134 by filtering out bad DOM props (#4140)
Fixes: #4134 by updating the spreading of props onto the `TextField` to remove bad DOM fields
Fixed Programmatic submit not working properly in Firefox (#4150)
Fix Maximum call stack size exceeded in findSchemaDefinition (#4123)
fix typos in constants.ts, Form.tsx (#4185)
Fix mui imports in docs (#4218)
fix] Resetting number fields should check the entire string when deciding to leave the input text alone (#4202) (#4220)
Fixed performance issue with large schema dependencies and oneOf (#4203) (#4204)
Fixed performance issue #4203
fix(core): field ui-options higher priority (#4212)
fix(antd): disabled property of options of antd theme (#4216)
fix: omitExtraData on submit and on validateForm (#4228)
Fix IdSchema and PathSchema types (#4196)
fixes #4236
Fix #4197 in various themes by showing empty option in SelectWidget when appropriate (#4200)
fix: xss when rendering schema errors (#4256)
fix 4215 and 4260 by updating optionsList() to take a uiSchema (#4263)
Fixes #4215 and #4260 by supporting alternate titles for enums and anyOf/oneOf lists via the uiSchema
Fixed Changelog (#4269)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants