From 9a5c86d14065673fd1f0e9a9f2effeeefa2216dc Mon Sep 17 00:00:00 2001 From: Maximilian Grundke Date: Fri, 2 Jul 2021 11:55:44 +0200 Subject: [PATCH 1/5] Assign name prop as widget label --- packages/core/src/components/fields/ArrayField.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/core/src/components/fields/ArrayField.js b/packages/core/src/components/fields/ArrayField.js index 679a315d8e..b69839065d 100644 --- a/packages/core/src/components/fields/ArrayField.js +++ b/packages/core/src/components/fields/ArrayField.js @@ -539,13 +539,13 @@ class ArrayField extends Component { disabled, readonly, required, - label, placeholder, autofocus, onBlur, onFocus, registry = getDefaultRegistry(), rawErrors, + name, } = this.props; const items = this.props.formData; const { widgets, rootSchema, formContext } = registry; @@ -570,7 +570,7 @@ class ArrayField extends Component { disabled={disabled} readonly={readonly} required={required} - label={label} + label={name} placeholder={placeholder} formContext={formContext} autofocus={autofocus} From 04561c4a9c019b68a1ccfbd073a4c1e49f65c8ce Mon Sep 17 00:00:00 2001 From: Maximilian Grundke Date: Mon, 5 Jul 2021 08:34:43 +0200 Subject: [PATCH 2/5] Use title instead of name --- packages/core/src/components/fields/ArrayField.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/core/src/components/fields/ArrayField.js b/packages/core/src/components/fields/ArrayField.js index b69839065d..b208cfc562 100644 --- a/packages/core/src/components/fields/ArrayField.js +++ b/packages/core/src/components/fields/ArrayField.js @@ -550,6 +550,7 @@ class ArrayField extends Component { const items = this.props.formData; const { widgets, rootSchema, formContext } = registry; const itemsSchema = retrieveSchema(schema.items, rootSchema, formData); + const title = schema.title || name; const enumOptions = optionsList(itemsSchema); const { widget = "select", ...options } = { ...getUiOptions(uiSchema), @@ -570,7 +571,7 @@ class ArrayField extends Component { disabled={disabled} readonly={readonly} required={required} - label={name} + label={title} placeholder={placeholder} formContext={formContext} autofocus={autofocus} From 04701b9f30fcc806ae6d2e0aec98d4839ad6019f Mon Sep 17 00:00:00 2001 From: Maximilian Grundke Date: Mon, 5 Jul 2021 08:43:02 +0200 Subject: [PATCH 3/5] Test label prop for custom MultiSelect widgets --- packages/core/test/ArrayField_test.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/core/test/ArrayField_test.js b/packages/core/test/ArrayField_test.js index 47e46fd2b1..2191cd584f 100644 --- a/packages/core/test/ArrayField_test.js +++ b/packages/core/test/ArrayField_test.js @@ -1190,6 +1190,20 @@ describe("ArrayField", () => { "should NOT have duplicate items (items ## 1 and 0 are identical)" ); }); + + it("should pass a label as prop to custom widgets", () => { + const LabelComponent = ({ label }) =>
{label}
; + const { node } = createFormComponent({ + schema, + widgets: { + SelectWidget: LabelComponent, + }, + }); + + const matches = node.querySelectorAll("#test"); + expect(matches).to.have.length.of(1); + expect(matches[0].textContent).to.eql(schema.title); + }); }); describe("CheckboxesWidget", () => { From 637f9a5f9e9fea4d8f3f6160378ec352d406a1e6 Mon Sep 17 00:00:00 2001 From: Ashwin Ramaswami Date: Tue, 10 Aug 2021 21:30:51 -0400 Subject: [PATCH 4/5] Update for consistency with renderNormalArray() --- packages/core/src/components/fields/ArrayField.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/components/fields/ArrayField.js b/packages/core/src/components/fields/ArrayField.js index b208cfc562..f465cd4550 100644 --- a/packages/core/src/components/fields/ArrayField.js +++ b/packages/core/src/components/fields/ArrayField.js @@ -637,7 +637,7 @@ class ArrayField extends Component { onFocus, rawErrors, } = this.props; - const title = schema.title || name; + const title = schema.title === undefined ? name : schema.title; let items = this.props.formData; const { ArrayFieldTemplate, rootSchema, fields, formContext } = registry; const { TitleField } = fields; From 3a53814e5f9394bb86e3438c05b6bb71620916da Mon Sep 17 00:00:00 2001 From: Ashwin Ramaswami Date: Tue, 10 Aug 2021 21:31:59 -0400 Subject: [PATCH 5/5] fix for consistency --- packages/core/src/components/fields/ArrayField.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/core/src/components/fields/ArrayField.js b/packages/core/src/components/fields/ArrayField.js index f465cd4550..b208cfc562 100644 --- a/packages/core/src/components/fields/ArrayField.js +++ b/packages/core/src/components/fields/ArrayField.js @@ -637,7 +637,7 @@ class ArrayField extends Component { onFocus, rawErrors, } = this.props; - const title = schema.title === undefined ? name : schema.title; + const title = schema.title || name; let items = this.props.formData; const { ArrayFieldTemplate, rootSchema, fields, formContext } = registry; const { TitleField } = fields;