Skip to content

Commit cd422fe

Browse files
authored
Merge pull request #3513 from shockey/ft/3490-anyof-oneof-not-models
Support oneOf, anyOf, not
2 parents ab53122 + 2d00766 commit cd422fe

File tree

1 file changed

+49
-3
lines changed

1 file changed

+49
-3
lines changed

src/core/components/object-model.jsx

Lines changed: 49 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)