diff --git a/src/core/components/array-model.jsx b/src/core/components/array-model.jsx index b507b42b..3442d4c9 100644 --- a/src/core/components/array-model.jsx +++ b/src/core/components/array-model.jsx @@ -15,7 +15,7 @@ export default class ArrayModel extends Component { } render(){ - let { getComponent, required, schema, depth, expandDepth } = this.props + let { getComponent, required, schema, depth, expandDepth, name } = this.props let items = schema.get("items") let title = schema.get("title") || name let properties = schema.filter( ( v, key) => ["type", "items", "$$ref"].indexOf(key) === -1 ) @@ -23,7 +23,7 @@ export default class ArrayModel extends Component { const ModelCollapse = getComponent("ModelCollapse") const Model = getComponent("Model") - const titleEl = title && + const titleEl = title && { title } @@ -44,4 +44,4 @@ export default class ArrayModel extends Component { { required && *} } -} \ No newline at end of file +} diff --git a/src/core/components/layout-utils.jsx b/src/core/components/layout-utils.jsx index 00a4a09d..f80e0c90 100644 --- a/src/core/components/layout-utils.jsx +++ b/src/core/components/layout-utils.jsx @@ -129,7 +129,8 @@ export class Select extends React.Component { value: PropTypes.any, onChange: PropTypes.func, multiple: PropTypes.bool, - allowEmptyValue: PropTypes.bool + allowEmptyValue: PropTypes.bool, + className: PropTypes.string } static defaultProps = { @@ -142,7 +143,7 @@ export class Select extends React.Component { let value - if (props.value !== undefined) { + if (props.value) { value = props.value } else { value = props.multiple ? [""] : "" @@ -178,7 +179,7 @@ export class Select extends React.Component { let value = this.state.value.toJS ? this.state.value.toJS() : this.state.value return ( - { allowEmptyValue ? : null } { allowedValues.map(function (item, key) { diff --git a/src/core/components/model.jsx b/src/core/components/model.jsx index 499a0f05..cba34289 100644 --- a/src/core/components/model.jsx +++ b/src/core/components/model.jsx @@ -48,7 +48,7 @@ export default class Model extends Component { switch(type) { case "object": return case "array": return diff --git a/src/core/components/models.jsx b/src/core/components/models.jsx index c61ae0c9..86c3256d 100644 --- a/src/core/components/models.jsx +++ b/src/core/components/models.jsx @@ -24,8 +24,8 @@ export default class Models extends Component { return

layoutActions.show("models", !showModels)}> Models - - + +

diff --git a/src/core/components/object-model.jsx b/src/core/components/object-model.jsx index 5e0a83a9..cfaab2e6 100644 --- a/src/core/components/object-model.jsx +++ b/src/core/components/object-model.jsx @@ -23,7 +23,7 @@ export default class ObjectModel extends Component { let properties = schema.get("properties") let additionalProperties = schema.get("additionalProperties") let title = schema.get("title") || name - let required = schema.get("required") + let requiredProperties = schema.get("required") const JumpToPath = getComponent("JumpToPath", true) const Markdown = getComponent("Markdown") @@ -63,14 +63,16 @@ export default class ObjectModel extends Component { { !(properties && properties.size) ? null : properties.entrySeq().map( ([key, value]) => { - let isRequired = List.isList(required) && required.contains(key) + let isRequired = List.isList(requiredProperties) && requiredProperties.contains(key) let propertyStyle = { verticalAlign: "top", paddingRight: "0.2em" } if ( isRequired ) { propertyStyle.fontWeight = "bold" } return ( - { key }: + + { key }{ isRequired && * } + + bodyEl = // Audio } else if (/^audio\//i.test(contentType)) { diff --git a/src/core/components/schemes.jsx b/src/core/components/schemes.jsx index 8be4180a..f9fe8f81 100644 --- a/src/core/components/schemes.jsx +++ b/src/core/components/schemes.jsx @@ -19,8 +19,9 @@ export default class Schemes extends React.Component { } componentWillReceiveProps(nextProps) { - if ( this.props.operationScheme && !nextProps.schemes.has(this.props.operationScheme) ) { - //fire 'change' event if our selected scheme is no longer an option + if ( !this.props.operationScheme || !nextProps.schemes.has(this.props.operationScheme) ) { + // if we don't have a selected operationScheme or if our selected scheme is no longer an option, + // then fire 'change' event and select the first scheme in the list of options this.setScheme(nextProps.schemes.first()) } } diff --git a/src/core/json-schema-components.js b/src/core/json-schema-components.js index bf4ae514..338bd6e3 100644 --- a/src/core/json-schema-components.js +++ b/src/core/json-schema-components.js @@ -57,7 +57,8 @@ export class JsonSchema_string extends Component { if ( enumValue ) { const Select = getComponent("Select") - return () } - let errors = schema.errors || [] - return (
- { !value || value.count() < 1 ? - (errors.length ? { errors[0] } : null) : + { !value || value.count() < 1 ? null : value.map( (item,i) => { let schema = Object.assign({}, itemSchema) if ( errors.length ) { @@ -153,12 +153,12 @@ export class JsonSchema_array extends PureComponent { return (
this.onItemChange(val, i)} schema={schema} /> - +
) }).toArray() } - +
) } @@ -170,12 +170,14 @@ export class JsonSchema_boolean extends Component { onEnumChange = (val) => this.props.onChange(val) render() { - let { getComponent, required, value } = this.props + let { getComponent, value, schema } = this.props + let errors = schema.errors || [] const Select = getComponent("Select") - return (