@@ -11,11 +11,12 @@ export default class Primitive extends Component {
11
11
getConfigs : PropTypes . func . isRequired ,
12
12
name : PropTypes . string ,
13
13
displayName : PropTypes . string ,
14
- depth : PropTypes . number
14
+ depth : PropTypes . number ,
15
+ expandDepth : PropTypes . number
15
16
}
16
17
17
18
render ( ) {
18
- let { schema, getComponent, getConfigs, name, displayName, depth } = this . props
19
+ let { schema, getComponent, getConfigs, name, displayName, depth, expandDepth } = this . props
19
20
20
21
const { showExtensions } = getConfigs ( )
21
22
@@ -37,33 +38,40 @@ export default class Primitive extends Component {
37
38
const Markdown = getComponent ( "Markdown" , true )
38
39
const EnumModel = getComponent ( "EnumModel" )
39
40
const Property = getComponent ( "Property" )
41
+ const ModelCollapse = getComponent ( "ModelCollapse" )
42
+ const titleEl = title &&
43
+ < span className = "model-title" >
44
+ < span className = "model-title__text" > { title } </ span >
45
+ </ span >
40
46
41
47
return < span className = "model" >
42
- < span className = "prop" >
43
- { name && < span className = { `${ depth === 1 && "model-title" } prop-name` } > { title } </ span > }
44
- < span className = "prop-type" > { type } </ span >
45
- { format && < span className = "prop-format" > (${ format } )</ span > }
46
- {
47
- properties . size ? properties . entrySeq ( ) . map ( ( [ key , v ] ) => < Property key = { `${ key } -${ v } ` } propKey = { key } propVal = { v } propClass = { propClass } /> ) : null
48
- }
49
- {
50
- showExtensions && extensions . size ? extensions . entrySeq ( ) . map ( ( [ key , v ] ) => < Property key = { `${ key } -${ v } ` } propKey = { key } propVal = { v } propClass = { propClass } /> ) : null
51
- }
52
- {
53
- ! description ? null :
54
- < Markdown source = { description } />
55
- }
56
- {
57
- xml && xml . size ? ( < span > < br /> < span className = { propClass } > xml:</ span >
58
- {
59
- xml . entrySeq ( ) . map ( ( [ key , v ] ) => < span key = { `${ key } -${ v } ` } className = { propClass } > < br /> { key } : { String ( v ) } </ span > ) . toArray ( )
60
- }
61
- </ span > ) : null
62
- }
63
- {
64
- enumArray && < EnumModel value = { enumArray } getComponent = { getComponent } />
65
- }
66
- </ span >
48
+ < ModelCollapse title = { titleEl } expanded = { depth >= expandDepth } collapsedContent = " " hideSelfOnExpand = { expandDepth !== depth } >
49
+ < span className = "prop" >
50
+ { name && depth > 1 && < span className = { `${ depth === 1 && "model-title" } prop-name` } > { title } </ span > }
51
+ < span className = "prop-type" > { type } </ span >
52
+ { format && < span className = "prop-format" > (${ format } )</ span > }
53
+ {
54
+ properties . size ? properties . entrySeq ( ) . map ( ( [ key , v ] ) => < Property key = { `${ key } -${ v } ` } propKey = { key } propVal = { v } propClass = { propClass } /> ) : null
55
+ }
56
+ {
57
+ showExtensions && extensions . size ? extensions . entrySeq ( ) . map ( ( [ key , v ] ) => < Property key = { `${ key } -${ v } ` } propKey = { key } propVal = { v } propClass = { propClass } /> ) : null
58
+ }
59
+ {
60
+ ! description ? null :
61
+ < Markdown source = { description } />
62
+ }
63
+ {
64
+ xml && xml . size ? ( < span > < br /> < span className = { propClass } > xml:</ span >
65
+ {
66
+ xml . entrySeq ( ) . map ( ( [ key , v ] ) => < span key = { `${ key } -${ v } ` } className = { propClass } > < br /> { key } : { String ( v ) } </ span > ) . toArray ( )
67
+ }
68
+ </ span > ) : null
69
+ }
70
+ {
71
+ enumArray && < EnumModel value = { enumArray } getComponent = { getComponent } />
72
+ }
73
+ </ span >
74
+ </ ModelCollapse >
67
75
</ span >
68
76
}
69
77
}
0 commit comments