react-jsonschema-form
react-jsonschema-form copied to clipboard
Duplicate widgets when rending OpenAPI's discriminated unions
Prerequisites
- [X] I have searched the existing issues
- [X] I understand that providing a SSCCE example is tremendously useful to the maintainers.
- [X] I have read the documentation
- [X] Ideally, I'm providing a sample JSFiddle, Codesandbox.io or preferably a shared playground link demonstrating the issue.
What theme are you using?
core
Version
5.17.1
Current Behavior
When an OpenAPI schema containing oneOf and a discriminator is provided to rjsf, the discriminator property is rendered twice in the form: once for the discriminator itself and the second time from the definition of the selected option. Also, the discriminator property widget appears outside the object's group.
This can be easily reproduced using the schema from the rjsf's test for dscriminators:
https://rjsf-team.github.io/react-jsonschema-form/#eyJmb3JtRGF0YSI6eyJjb2RlIjoiZm9vX2NvZGluZyJ9LCJzY2hlbWEiOnsidHlwZSI6Im9iamVjdCIsImRlZmluaXRpb25zIjp7IkZvbyI6eyJ0aXRsZSI6IkZvbyIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImNvZGUiOnsidGl0bGUiOiJDb2RlIiwiZGVmYXVsdCI6ImZvb19jb2RpbmciLCJlbnVtIjpbImZvb19jb2RpbmciXSwidHlwZSI6InN0cmluZyJ9fX0sIkJhciI6eyJ0aXRsZSI6IkJhciIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImNvZGUiOnsidGl0bGUiOiJDb2RlIiwiZGVmYXVsdCI6ImJhcl9jb2RpbmciLCJlbnVtIjpbImJhcl9jb2RpbmciXSwidHlwZSI6InN0cmluZyJ9fX0sIkJheiI6eyJ0aXRsZSI6IkJheiIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImNvZGUiOnsidGl0bGUiOiJDb2RlIiwiZGVmYXVsdCI6ImJhel9jb2RpbmciLCJlbnVtIjpbImJhel9jb2RpbmciXSwidHlwZSI6InN0cmluZyJ9fX19LCJkaXNjcmltaW5hdG9yIjp7InByb3BlcnR5TmFtZSI6ImNvZGUiLCJtYXBwaW5nIjp7ImZvb19jb2RpbmciOiIjL2RlZmluaXRpb25zL0ZvbyIsImJhcl9jb2RpbmciOiIjL2RlZmluaXRpb25zL0JhciIsImJhel9jb2RpbmciOiIjL2RlZmluaXRpb25zL0JheiJ9fSwib25lT2YiOlt7IiRyZWYiOiIjL2RlZmluaXRpb25zL0ZvbyJ9LHsiJHJlZiI6IiMvZGVmaW5pdGlvbnMvQmFyIn0seyIkcmVmIjoiIy9kZWZpbml0aW9ucy9CYXoifV19LCJ1aVNjaGVtYSI6e30sInRoZW1lIjoiZGVmYXVsdCIsImxpdmVTZXR0aW5ncyI6eyJzaG93RXJyb3JMaXN0IjoidG9wIiwiZXhwZXJpbWVudGFsX2RlZmF1bHRGb3JtU3RhdGVCZWhhdmlvciI6eyJhcnJheU1pbkl0ZW1zIjp7InBvcHVsYXRlIjoicG9wdWxhdGUiLCJtZXJnZUV4dHJhRGVmYXVsdHMiOmZhbHNlfSwiYWxsT2YiOiJza2lwRGVmYXVsdHMiLCJlbXB0eU9iamVjdEZpZWxkcyI6InBvcHVsYXRlQWxsRGVmYXVsdHMifX19
Expected Behavior
When using schema dependencies, the rendering is much better:
https://rjsf-team.github.io/react-jsonschema-form/#eyJmb3JtRGF0YSI6eyJjb2RlIjoiZm9vX2NvZGluZyJ9LCJzY2hlbWEiOnsidHlwZSI6Im9iamVjdCIsImRlZmluaXRpb25zIjp7IkZvbyI6eyJ0aXRsZSI6IkZvbyIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImNvZGUiOnsidGl0bGUiOiJDb2RlIiwiZGVmYXVsdCI6ImZvb19jb2RpbmciLCJlbnVtIjpbImZvb19jb2RpbmciXSwidHlwZSI6InN0cmluZyJ9fX0sIkJhciI6eyJ0aXRsZSI6IkJhciIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImNvZGUiOnsidGl0bGUiOiJDb2RlIiwiZGVmYXVsdCI6ImJhcl9jb2RpbmciLCJlbnVtIjpbImJhcl9jb2RpbmciXSwidHlwZSI6InN0cmluZyJ9fX0sIkJheiI6eyJ0aXRsZSI6IkJheiIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImNvZGUiOnsidGl0bGUiOiJDb2RlIiwiZGVmYXVsdCI6ImJhel9jb2RpbmciLCJlbnVtIjpbImJhel9jb2RpbmciXSwidHlwZSI6InN0cmluZyJ9fX19LCJkZXBlbmRlbmNpZXMiOnsiY29kZSI6eyJvbmVPZiI6W3siJHJlZiI6IiMvZGVmaW5pdGlvbnMvRm9vIn0seyIkcmVmIjoiIy9kZWZpbml0aW9ucy9CYXIifSx7IiRyZWYiOiIjL2RlZmluaXRpb25zL0JheiJ9XX19LCJwcm9wZXJ0aWVzIjp7ImNvZGUiOnsidGl0bGUiOiJDb2RlIiwiZGVmYXVsdCI6ImZvb19jb2RpbmciLCJvbmVPZiI6W3sidGl0bGUiOiJGb28iLCJjb25zdCI6ImZvb19jb2RpbmcifSx7InRpdGxlIjoiQmFyIiwiY29uc3QiOiJiYXJfY29kaW5nIn0seyJ0aXRsZSI6IkJheiIsImNvbnN0IjoiYmF6X2NvZGluZyJ9XSwidHlwZSI6InN0cmluZyJ9fX0sInVpU2NoZW1hIjp7fSwidGhlbWUiOiJkZWZhdWx0In0=
- There is no duplicate widget.
- The widget appears inside of its group.
It would be nice if the rendering when using the discriminator field corresponded to the rendering when using schema dependencies.
Steps To Reproduce
No response
Environment
- OS:
- Node:
- npm:
Anything else?
No response