diff --git a/src/core/components/model.jsx b/src/core/components/model.jsx index a043c325..b5f620c5 100644 --- a/src/core/components/model.jsx +++ b/src/core/components/model.jsx @@ -117,12 +117,13 @@ class ObjectModel extends Component { class Primitive extends Component { static propTypes = { schema: PropTypes.object.isRequired, + name: PropTypes.string, getComponent: PropTypes.func.isRequired, required: PropTypes.bool } render(){ - let { schema, getComponent, required } = this.props + let { schema, getComponent, name, required } = this.props if(!schema || !schema.get) { // don't render if schema isn't correctly formed @@ -133,12 +134,18 @@ class Primitive extends Component { let format = schema.get("format") let xml = schema.get("xml") let enumArray = schema.get("enum") + let title = schema.get("title") || name let description = schema.get("description") let properties = schema.filter( ( v, key) => ["enum", "type", "format", "description", "$$ref"].indexOf(key) === -1 ) let style = required ? { fontWeight: "bold" } : {} const Markdown = getComponent("Markdown") - return + return + { + title && + { title } + + } { type } { required && *} { format && (${format})} { @@ -176,17 +183,20 @@ class ArrayModel extends Component { } render(){ - let { required, schema, depth, expandDepth } = this.props + let { required, schema, depth, name, expandDepth } = 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 ) - + return - - { schema.get("title") } - + { + title && + { title } + + } expandDepth } collapsedContent="[...]"> [ - + ] { properties.size ? @@ -249,13 +259,13 @@ class Model extends Component { name={ name || modelName } isRef={ isRef!== undefined ? isRef : !!$$ref }/> case "array": - return + return case "string": case "number": case "integer": case "boolean": default: - return + return } } }