diff --git a/packages/core/src/components/fields/BooleanField.js b/packages/core/src/components/fields/BooleanField.js index d0e44bfa29..ccf1fbcd7d 100644 --- a/packages/core/src/components/fields/BooleanField.js +++ b/packages/core/src/components/fields/BooleanField.js @@ -26,7 +26,7 @@ function BooleanField(props) { rawErrors, } = props; const { title } = schema; - const { widgets, formContext } = registry; + const { widgets, formContext, fields } = registry; const { widget = "checkbox", ...options } = getUiOptions(uiSchema); const Widget = getWidget(schema, widget, widgets); @@ -67,6 +67,7 @@ function BooleanField(props) { formContext={formContext} autofocus={autofocus} rawErrors={rawErrors} + DescriptionField={fields.DescriptionField} /> ); } diff --git a/packages/core/src/components/widgets/CheckboxWidget.js b/packages/core/src/components/widgets/CheckboxWidget.js index 632ab4b426..21a548f053 100644 --- a/packages/core/src/components/widgets/CheckboxWidget.js +++ b/packages/core/src/components/widgets/CheckboxWidget.js @@ -1,6 +1,5 @@ import React from "react"; import PropTypes from "prop-types"; -import DescriptionField from "../fields/DescriptionField.js"; // Check to see if a schema specifies that a value must be true function schemaRequiresTrueValue(schema) { @@ -43,6 +42,7 @@ function CheckboxWidget(props) { onBlur, onFocus, onChange, + DescriptionField, } = props; // Because an unchecked checkbox will cause html5 validation to fail, only add diff --git a/packages/core/test/BooleanField_test.js b/packages/core/test/BooleanField_test.js index 11470cb48d..40354c7d71 100644 --- a/packages/core/test/BooleanField_test.js +++ b/packages/core/test/BooleanField_test.js @@ -184,6 +184,23 @@ describe("BooleanField", () => { expect(description.textContent).eql("my description"); }); + it("should render the description using provided description field", () => { + const { node } = createFormComponent({ + schema: { + type: "boolean", + description: "my description", + }, + fields: { + DescriptionField: ({ description }) => ( +
{description} overridden
+ ), + }, + }); + + const description = node.querySelector(".field-description"); + expect(description.textContent).eql("my description overridden"); + }); + it("should assign a default value", () => { const { node } = createFormComponent({ schema: {