diff --git a/src/core/components/parameter-row.jsx b/src/core/components/parameter-row.jsx index 653914171b4..42f45bd9b48 100644 --- a/src/core/components/parameter-row.jsx +++ b/src/core/components/parameter-row.jsx @@ -158,7 +158,7 @@ export default class ParameterRow extends Component { Available values: " + paramItemsEnum.map(function(item) { return item - }).toArray().join(", ")}/> + }).toArray().join(", ")}/> : null } @@ -181,6 +181,7 @@ export default class ParameterRow extends Component { required={ required } description={param.get("description") ? `${param.get("name")} - ${param.get("description")}` : `${param.get("name")}`} onChange={ this.onChangeWrapper } + errors={ param.get("errors") } schema={ isOAS3 && isOAS3() ? param.get("schema") : param }/> } diff --git a/src/core/json-schema-components.js b/src/core/json-schema-components.js index 07fcada2e23..087b617ca33 100644 --- a/src/core/json-schema-components.js +++ b/src/core/json-schema-components.js @@ -1,6 +1,7 @@ import React, { PureComponent, Component } from "react" import PropTypes from "prop-types" import { List, fromJS } from "immutable" +import ImPropTypes from "react-immutable-proptypes" //import "less/json-schema-form" const noop = ()=> {} @@ -11,6 +12,7 @@ const JsonSchemaPropShape = { keyName: PropTypes.any, fn: PropTypes.object.isRequired, schema: PropTypes.object, + errors: ImPropTypes.list, required: PropTypes.bool, description: PropTypes.any } @@ -20,7 +22,8 @@ const JsonSchemaDefaultProps = { onChange: noop, schema: {}, keyName: "", - required: false + required: false, + errors: List() } export class JsonSchemaForm extends Component { @@ -29,7 +32,7 @@ export class JsonSchemaForm extends Component { static defaultProps = JsonSchemaDefaultProps render() { - let { schema, value, onChange, getComponent, fn } = this.props + let { schema, errors, value, onChange, getComponent, fn } = this.props if(schema.toJS) schema = schema.toJS() @@ -37,7 +40,7 @@ export class JsonSchemaForm extends Component { let { type, format="" } = schema let Comp = (format ? getComponent(`JsonSchema_${type}_${format}`) : getComponent(`JsonSchema_${type}`)) || getComponent("JsonSchema_string") - return + return } } @@ -51,14 +54,15 @@ export class JsonSchema_string extends Component { } onEnumChange = (val) => this.props.onChange(val) render() { - let { getComponent, value, schema, required, description } = this.props + let { getComponent, value, schema, errors, required, description } = this.props let enumValue = schema["enum"] - let errors = schema.errors || [] + + errors = errors.toJS ? errors.toJS() : [] if ( enumValue ) { const Select = getComponent("Select") return ( err.index === i) - if (err.length) schema.errors = [ err[0].error + i ] + if (err.length) errors = [ err[0].error + i ] } return (
@@ -182,12 +187,13 @@ export class JsonSchema_boolean extends Component { onEnumChange = (val) => this.props.onChange(val) render() { - let { getComponent, value, schema } = this.props - let errors = schema.errors || [] + let { getComponent, value, errors, schema } = this.props + errors = errors.toJS ? errors.toJS() : [] + const Select = getComponent("Select") return (