rjsf-team/react-jsonschema-form

Duplicate widgets when rendering OpenAPI's discriminated unions

Open

#4.124 aberto em 12 de mar. de 2024

Ver no GitHub
 (1 comment) (1 reaction) (0 assignees)TypeScript (2.136 forks)batch import
awaiting responsefeaturehelp wanted

Métricas do repositório

Stars
 (13.175 stars)
Métricas de merge de PR
 (Mesclagem média 3d 17h) (32 fundiu PRs em 30d)

Description

Prerequisites

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 image

Expected Behavior

When using schema dependencies, the rendering is much better: https://rjsf-team.github.io/react-jsonschema-form/#eyJmb3JtRGF0YSI6eyJjb2RlIjoiZm9vX2NvZGluZyJ9LCJzY2hlbWEiOnsidHlwZSI6Im9iamVjdCIsImRlZmluaXRpb25zIjp7IkZvbyI6eyJ0aXRsZSI6IkZvbyIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImNvZGUiOnsidGl0bGUiOiJDb2RlIiwiZGVmYXVsdCI6ImZvb19jb2RpbmciLCJlbnVtIjpbImZvb19jb2RpbmciXSwidHlwZSI6InN0cmluZyJ9fX0sIkJhciI6eyJ0aXRsZSI6IkJhciIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImNvZGUiOnsidGl0bGUiOiJDb2RlIiwiZGVmYXVsdCI6ImJhcl9jb2RpbmciLCJlbnVtIjpbImJhcl9jb2RpbmciXSwidHlwZSI6InN0cmluZyJ9fX0sIkJheiI6eyJ0aXRsZSI6IkJheiIsInR5cGUiOiJvYmplY3QiLCJwcm9wZXJ0aWVzIjp7ImNvZGUiOnsidGl0bGUiOiJDb2RlIiwiZGVmYXVsdCI6ImJhel9jb2RpbmciLCJlbnVtIjpbImJhel9jb2RpbmciXSwidHlwZSI6InN0cmluZyJ9fX19LCJkZXBlbmRlbmNpZXMiOnsiY29kZSI6eyJvbmVPZiI6W3siJHJlZiI6IiMvZGVmaW5pdGlvbnMvRm9vIn0seyIkcmVmIjoiIy9kZWZpbml0aW9ucy9CYXIifSx7IiRyZWYiOiIjL2RlZmluaXRpb25zL0JheiJ9XX19LCJwcm9wZXJ0aWVzIjp7ImNvZGUiOnsidGl0bGUiOiJDb2RlIiwiZGVmYXVsdCI6ImZvb19jb2RpbmciLCJvbmVPZiI6W3sidGl0bGUiOiJGb28iLCJjb25zdCI6ImZvb19jb2RpbmcifSx7InRpdGxlIjoiQmFyIiwiY29uc3QiOiJiYXJfY29kaW5nIn0seyJ0aXRsZSI6IkJheiIsImNvbnN0IjoiYmF6X2NvZGluZyJ9XSwidHlwZSI6InN0cmluZyJ9fX0sInVpU2NoZW1hIjp7fSwidGhlbWUiOiJkZWZhdWx0In0= image

  1. There is no duplicate widget.
  2. 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

Guia do colaborador