diff --git a/src/core/json-schema-components.jsx b/src/core/json-schema-components.jsx index c5f1181dad3..6c63263c555 100644 --- a/src/core/json-schema-components.jsx +++ b/src/core/json-schema-components.jsx @@ -50,8 +50,15 @@ export class JsonSchemaForm extends Component { schema = schema.toJS() let { type, format="" } = schema + // In the json schema rendering code, we optimistically query our system for a number of components. + // If the component doesn't exist, we optionally suppress these warnings. + let getComponentSilently = (name) => getComponent(name, false, { failSilently: true }) + + let Comp = (format ? + getComponentSilently(`JsonSchema_${type}_${format}`) : + getComponentSilently(`JsonSchema_${type}`)) || + getComponentSilently("JsonSchema_string") - let Comp = (format ? getComponent(`JsonSchema_${type}_${format}`) : getComponent(`JsonSchema_${type}`)) || getComponent("JsonSchema_string") return } diff --git a/src/core/plugins/view/root-injects.jsx b/src/core/plugins/view/root-injects.jsx index d977400ddee..384ca216dd9 100644 --- a/src/core/plugins/view/root-injects.jsx +++ b/src/core/plugins/view/root-injects.jsx @@ -101,15 +101,20 @@ const wrapRender = (component) => { } -export const getComponent = (getSystem, getStore, getComponents, componentName, container) => { +export const getComponent = (getSystem, getStore, getComponents, componentName, container, config = {}) => { if(typeof componentName !== "string") throw new TypeError("Need a string, to fetch a component. Was given a " + typeof componentName) + // getComponent has a config object as a third, optional parameter + // using the config object requires the presence of the second parameter, container + // e.g. getComponent("JsonSchema_string_whatever", false, { failSilently: true }) let component = getComponents(componentName) if(!component) { - getSystem().log.warn("Could not find component", componentName) + if (!config.failSilently) { + getSystem().log.warn("Could not find component:", componentName) + } return null }