react-jsonschema-form icon indicating copy to clipboard operation
react-jsonschema-form copied to clipboard

Problem with contains condition in the array field and conditionally rendered subschema with the integer keys when liveOmmit and omitExtraData are set to true

Open magaton opened this issue 2 years ago • 1 comments

Prerequisites

What theme are you using?

mui

Version

5.13.2

Current Behavior

I have hit a strange bug, not sure where to look, so I will post working and not working schemas. Hopefully, the maintainers will have an idea of what is wrong.

#1. if-then with contains. The conditionally rendered schema has string keys. This works. #2. if-then with contains. The conditionally rendered schema has integer keys. This does not work.

Both work well when liveOmmit and omitExtraData are set to false

Expected Behavior

I would expect that both scenarios work with turned on liveOmmit and omitExtraData. However it seems that they reset the field that is used for rendering the dependent schema, but only if that field options match the keys in the dependent schema. This looks like a bug to me

Steps To Reproduce

#1

#2

Environment

- OS: MacOsx
- Node: latest
- npm: latest

Anything else?

No response

magaton avatar Oct 25 '23 12:10 magaton

@magaton The issue might be in one of three places: In @rjsf/utils: either the pathToSchema() is generating a bad or missing schema path in which case MAYBE #3916 will fix it? Possibly the retrieveSchema() might not be parsing properly for the second condition? Or maybe the getDefaultFormState() function is behaving differently for these two situations

OR perhaps our code for omitting live data in the Form is buggy?

Anyways, if you are able to debug this and figure out where the bug is, we'd love fix! Thanks

heath-freenome avatar Oct 27 '23 19:10 heath-freenome