Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions src/core/json-schema-components.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,10 @@ export class JsonSchemaForm extends Component {
schema = schema.toJS()

let { type, format="" } = schema

let Comp = (format ? getComponent(`JsonSchema_${type}_${format}`) : getComponent(`JsonSchema_${type}`)) || getComponent("JsonSchema_string")
// 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")
return <Comp { ...this.props } errors={errors} fn={fn} getComponent={getComponent} value={value} onChange={onChange} schema={schema} disabled={disabled}/>
}

Expand Down
9 changes: 7 additions & 2 deletions src/core/plugins/view/root-injects.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -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
}

Expand Down