@@ -18,7 +18,7 @@ export default class ObjectModel extends Component {
1818
1919 render ( ) {
2020 let { schema, name, isRef, getComponent, depth, ...props } = this . props
21- let { expandDepth } = this . props
21+ let { expandDepth, specSelectors } = this . props
2222 let description = schema . get ( "description" )
2323 let properties = schema . get ( "properties" )
2424 let additionalProperties = schema . get ( "additionalProperties" )
@@ -37,7 +37,11 @@ export default class ObjectModel extends Component {
3737 isRef ? < JumpToPathSection name = { name } /> : ""
3838 }
3939 </ span > )
40-
40+
41+ const anyOf = specSelectors . isOAS3 ( ) ? schema . get ( "anyOf" ) : null
42+ const oneOf = specSelectors . isOAS3 ( ) ? schema . get ( "oneOf" ) : null
43+ const not = specSelectors . isOAS3 ( ) ? schema . get ( "not" ) : null
44+
4145 const titleEl = title && < span className = "model-title" >
4246 { isRef && schema . get ( "$$ref" ) && < span className = "model-hint" > { schema . get ( "$$ref" ) } </ span > }
4347 < span className = "model-title__text" > { title } </ span >
@@ -95,11 +99,53 @@ export default class ObjectModel extends Component {
9599 </ td >
96100 </ tr >
97101 }
102+ {
103+ ! anyOf ? null
104+ : < tr >
105+ < td > { "anyOf ->" } </ td >
106+ < td >
107+ { anyOf . map ( ( schema , k ) => {
108+ return < div key = { k } > < Model { ...props } required = { false }
109+ getComponent = { getComponent }
110+ schema = { schema }
111+ depth = { depth + 1 } /> </ div >
112+ } ) }
113+ </ td >
114+ </ tr >
115+ }
116+ {
117+ ! oneOf ? null
118+ : < tr >
119+ < td > { "oneOf ->" } </ td >
120+ < td >
121+ { oneOf . map ( ( schema , k ) => {
122+ return < div key = { k } > < Model { ...props } required = { false }
123+ getComponent = { getComponent }
124+ schema = { schema }
125+ depth = { depth + 1 } /> </ div >
126+ } ) }
127+ </ td >
128+ </ tr >
129+ }
130+ {
131+ ! not ? null
132+ : < tr >
133+ < td > { "not ->" } </ td >
134+ < td >
135+ { not . map ( ( schema , k ) => {
136+ return < div key = { k } > < Model { ...props } required = { false }
137+ getComponent = { getComponent }
138+ schema = { schema }
139+ depth = { depth + 1 } /> </ div >
140+ } ) }
141+ </ td >
142+ </ tr >
143+ }
98144 </ tbody > </ table >
99145 }
100146 </ span >
101147 < span className = "brace-close" > { braceClose } </ span >
102148 </ ModelCollapse >
103149 </ span >
104150 }
105- }
151+ }
0 commit comments