From 89df5cd4533e343505232ca11b1104dead82531c Mon Sep 17 00:00:00 2001 From: Christian Wendt <54559756+cwendtxealth@users.noreply.github.com> Date: Mon, 28 Aug 2023 08:57:28 -0700 Subject: [PATCH] fix: Fixes #3808 Duplciate AnyOf/OneOf Description (#3841) --- CHANGELOG.md | 6 ++++++ packages/core/src/components/fields/MultiSchemaField.tsx | 9 +++------ packages/core/test/anyOf.test.jsx | 3 +++ packages/core/test/oneOf.test.jsx | 3 +++ 4 files changed, 15 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5c3f9fd64..012e8a5626 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,12 @@ it according to semantic versioning. For example, if your PR adds a breaking cha should change the heading of the (upcoming) version to include a major version bump. --> +# 5.12.2 + +## @rjsf/core + +- Updated `MultiSchemaField` to only merge top level required field fixing duplicate field and description. + # 5.12.1 ## @rjsf/validator-ajv8 diff --git a/packages/core/src/components/fields/MultiSchemaField.tsx b/packages/core/src/components/fields/MultiSchemaField.tsx index 11e612c059..cf5d4600cd 100644 --- a/packages/core/src/components/fields/MultiSchemaField.tsx +++ b/packages/core/src/components/fields/MultiSchemaField.tsx @@ -2,9 +2,7 @@ import { Component } from 'react'; import get from 'lodash/get'; import isEmpty from 'lodash/isEmpty'; import omit from 'lodash/omit'; -import unset from 'lodash/unset'; import { - ADDITIONAL_PROPERTY_FLAG, deepEquals, ERRORS_KEY, FieldProps, @@ -172,11 +170,10 @@ class AnyOfField { properties: { baz: { type: 'number' }, }, + description: 'top level description', anyOf: [ { properties: { @@ -61,6 +62,8 @@ describe('anyOf', () => { expect(node.querySelectorAll('select')).to.have.length.of(1); expect(node.querySelector('select').id).eql('root__anyof_select'); expect(node.querySelectorAll('span.required')).to.have.length.of(1); + expect(node.querySelectorAll('#root__description')).to.have.length.of(1); + expect(node.querySelectorAll('#root_baz')).to.have.length.of(1); }); it('should render a select element if the anyOf keyword is present, merges top level and anyOf required', () => { diff --git a/packages/core/test/oneOf.test.jsx b/packages/core/test/oneOf.test.jsx index 205b541e0f..45ae7301dd 100644 --- a/packages/core/test/oneOf.test.jsx +++ b/packages/core/test/oneOf.test.jsx @@ -39,6 +39,7 @@ describe('oneOf', () => { properties: { baz: { type: 'number' }, }, + description: 'top level description', oneOf: [ { properties: { @@ -62,6 +63,8 @@ describe('oneOf', () => { expect(node.querySelectorAll('select')).to.have.length.of(1); expect(node.querySelector('select').id).eql('root__oneof_select'); expect(node.querySelectorAll('span.required')).to.have.length.of(1); + expect(node.querySelectorAll('#root__description')).to.have.length.of(1); + expect(node.querySelectorAll('#root_baz')).to.have.length.of(1); }); it('should render a select element if the oneOf keyword is present, merges top level and oneOf required', () => {