diff --git a/src/core/plugins/json-schema-5/components/array-model.jsx b/src/core/plugins/json-schema-5/components/array-model.jsx index 3c5335d6d0b..9cb43977711 100644 --- a/src/core/plugins/json-schema-5/components/array-model.jsx +++ b/src/core/plugins/json-schema-5/components/array-model.jsx @@ -26,6 +26,9 @@ export default class ArrayModel extends Component { let description = schema.get("description") let items = schema.get("items") let title = schema.get("title") || displayName || name + let xml = items.get("xml") + let singleProperty = xml ? xml.size === 1 : false + let simpleProp = ["object", "array"].indexOf(items.get("type")) === -1 let properties = schema.filter( ( v, key) => ["type", "items", "description", "$$ref", "externalDocs"].indexOf(key) === -1 ) let externalDocsUrl = schema.getIn(["externalDocs", "url"]) let externalDocsDescription = schema.getIn(["externalDocs", "description"]) @@ -49,9 +52,13 @@ export default class ArrayModel extends Component { return + { singleProperty && simpleProp ? { items.get("type") } : null } [ { - properties.size ? properties.entrySeq().map( ( [ key, v ] ) => ) : null + properties.size && !singleProperty ? properties.entrySeq().map( ( [ key, v ] ) => ) : null + } + { + xml && properties.size && singleProperty ? xml.entrySeq().map( ( [ key, v ] ) => ) : null } { !description ? (properties.size ?
: null) : @@ -62,7 +69,8 @@ export default class ArrayModel extends Component { {externalDocsDescription || externalDocsUrl} } - + { (!singleProperty || !simpleProp ) ? + ( - + ) : null + } ]