|
|
@@ -30,39 +30,38 @@ export default class Model extends Component { |
|
|
|
|
|
|
|
render () { |
|
|
|
let { getComponent, specSelectors, schema, required, name, isRef } = this.props |
|
|
|
let ObjectModel = getComponent("ObjectModel") |
|
|
|
let ArrayModel = getComponent("ArrayModel") |
|
|
|
let PrimitiveModel = getComponent("PrimitiveModel") |
|
|
|
const ObjectModel = getComponent("ObjectModel") |
|
|
|
const ArrayModel = getComponent("ArrayModel") |
|
|
|
const PrimitiveModel = getComponent("PrimitiveModel") |
|
|
|
let type = "object" |
|
|
|
let $$ref = schema && schema.get("$$ref") |
|
|
|
let modelName = $$ref && this.getModelName( $$ref ) |
|
|
|
let modelSchema, type |
|
|
|
|
|
|
|
const deprecated = specSelectors.isOAS3() && schema.get("deprecated") |
|
|
|
|
|
|
|
if ( schema && (schema.get("type") || schema.get("properties")) ) { |
|
|
|
modelSchema = schema |
|
|
|
} else if ( $$ref ) { |
|
|
|
modelSchema = this.getRefSchema( modelName ) |
|
|
|
|
|
|
|
// If we weren't passed a `name` but have a ref, grab the name from the ref |
|
|
|
if ( !name && $$ref ) { |
|
|
|
name = this.getModelName( $$ref ) |
|
|
|
} |
|
|
|
|
|
|
|
type = modelSchema && modelSchema.get("type") |
|
|
|
if ( !type && modelSchema && modelSchema.get("properties") ) { |
|
|
|
type = "object" |
|
|
|
// If we weren't passed a `schema` but have a ref, grab the schema from the ref |
|
|
|
if ( !schema && $$ref ) { |
|
|
|
schema = this.getRefSchema( name ) |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
const deprecated = specSelectors.isOAS3() && schema.get("deprecated") |
|
|
|
isRef = isRef !== undefined ? isRef : !!$$ref |
|
|
|
type = schema && schema.get("type") || type |
|
|
|
|
|
|
|
switch(type) { |
|
|
|
case "object": |
|
|
|
return <ObjectModel |
|
|
|
className="object" { ...this.props } |
|
|
|
schema={ modelSchema } |
|
|
|
name={ modelName || name } |
|
|
|
schema={ schema } |
|
|
|
name={ name } |
|
|
|
deprecated={deprecated} |
|
|
|
isRef={ isRef!== undefined ? isRef : !!$$ref } /> |
|
|
|
isRef={ isRef } /> |
|
|
|
case "array": |
|
|
|
return <ArrayModel |
|
|
|
className="array" { ...this.props } |
|
|
|
schema={ modelSchema } |
|
|
|
name={ modelName || name } |
|
|
|
schema={ schema } |
|
|
|
name={ name } |
|
|
|
deprecated={deprecated} |
|
|
|
required={ required } /> |
|
|
|
case "string": |
|
|
@@ -73,9 +72,10 @@ export default class Model extends Component { |
|
|
|
return <PrimitiveModel |
|
|
|
{ ...this.props } |
|
|
|
getComponent={ getComponent } |
|
|
|
schema={ modelSchema } |
|
|
|
name={ modelName || name } |
|
|
|
schema={ schema } |
|
|
|
name={ name } |
|
|
|
deprecated={deprecated} |
|
|
|
required={ required }/> } |
|
|
|
required={ required }/> |
|
|
|
} |
|
|
|
} |
|
|
|
} |