Skip to content

Commit 6af2aae

Browse files
authored
Merge pull request #3509 from owenconti/bug/3500-missing-name-for-primitives
Fixes #3500 - Fix missing names for primitive models
2 parents 0113703 + 719db39 commit 6af2aae

File tree

7 files changed

+40
-36
lines changed

7 files changed

+40
-36
lines changed

src/core/components/array-model.jsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ export default class ArrayModel extends Component {
1515
}
1616

1717
render(){
18-
let { getComponent, required, schema, depth, expandDepth, name } = this.props
18+
let { getComponent, schema, depth, expandDepth, name } = this.props
1919
let items = schema.get("items")
2020
let title = schema.get("title") || name
2121
let properties = schema.filter( ( v, key) => ["type", "items", "$$ref"].indexOf(key) === -1 )
@@ -31,7 +31,7 @@ export default class ArrayModel extends Component {
3131
return <span className="model">
3232
<ModelCollapse title={titleEl} collapsed={ depth > expandDepth } collapsedContent="[...]">
3333
[
34-
<span><Model { ...this.props } schema={ items } required={ false }/></span>
34+
<span><Model { ...this.props } schema={ items } required={ false } depth={ depth + 1 } /></span>
3535
]
3636
{
3737
properties.size ? <span>
@@ -41,7 +41,6 @@ export default class ArrayModel extends Component {
4141
: null
4242
}
4343
</ModelCollapse>
44-
{ required && <span style={{ color: "red" }}>*</span>}
4544
</span>
4645
}
4746
}

src/core/components/model.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,8 +74,8 @@ export default class Model extends Component {
7474
{ ...this.props }
7575
getComponent={ getComponent }
7676
schema={ modelSchema }
77-
name={ name || modelName }
77+
name={ modelName }
7878
deprecated={deprecated}
79-
required={ required }/> }
79+
required={ required }/> }
8080
}
8181
}

src/core/components/object-model.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ export default class ObjectModel extends Component {
1717
}
1818

1919
render(){
20-
let { schema, name, isRef, getComponent, depth, ...props } = this.props
21-
let { expandDepth, specSelectors } = this.props
20+
let { schema, name, isRef, getComponent, depth, expandDepth, specSelectors, ...props } = this.props
2221
let { isOAS3 } = specSelectors
22+
2323
let description = schema.get("description")
2424
let properties = schema.get("properties")
2525
let additionalProperties = schema.get("additionalProperties")

src/core/components/primitive-model.jsx

Lines changed: 28 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,12 @@ export default class Primitive extends Component {
77
static propTypes = {
88
schema: PropTypes.object.isRequired,
99
getComponent: PropTypes.func.isRequired,
10-
required: PropTypes.bool
10+
name: PropTypes.string,
11+
depth: PropTypes.number
1112
}
1213

1314
render(){
14-
let { schema, getComponent, required } = this.props
15+
let { schema, getComponent, name, depth } = this.props
1516

1617
if(!schema || !schema.get) {
1718
// don't render if schema isn't correctly formed
@@ -24,32 +25,34 @@ export default class Primitive extends Component {
2425
let enumArray = schema.get("enum")
2526
let description = schema.get("description")
2627
let properties = schema.filter( ( v, key) => ["enum", "type", "format", "description", "$$ref"].indexOf(key) === -1 )
27-
let style = required ? { fontWeight: "bold" } : {}
2828
const Markdown = getComponent("Markdown")
2929
const EnumModel = getComponent("EnumModel")
3030

31-
return <span className="prop">
32-
<span className="prop-type" style={ style }>{ type }</span> { required && <span style={{ color: "red" }}>*</span>}
33-
{ format && <span className="prop-format">(${format})</span>}
34-
{
35-
properties.size ? properties.entrySeq().map( ( [ key, v ] ) => <span key={`${key}-${v}`} style={ propStyle }>
36-
<br />{ key }: { String(v) }</span>)
37-
: null
38-
}
39-
{
40-
!description ? null :
41-
<Markdown source={ description } />
42-
}
43-
{
44-
xml && xml.size ? (<span><br /><span style={ propStyle }>xml:</span>
45-
{
46-
xml.entrySeq().map( ( [ key, v ] ) => <span key={`${key}-${v}`} style={ propStyle }><br/>&nbsp;&nbsp;&nbsp;{key}: { String(v) }</span>).toArray()
47-
}
48-
</span>): null
49-
}
50-
{
51-
enumArray && <EnumModel value={ enumArray } getComponent={ getComponent } />
52-
}
31+
return <span className="model">
32+
<span className="prop">
33+
{ name && <span className={`${depth === 1 && "model-title"} prop-name`}>{ name }</span> }
34+
<span className="prop-type">{ type }</span>
35+
{ format && <span className="prop-format">(${format})</span>}
36+
{
37+
properties.size ? properties.entrySeq().map( ( [ key, v ] ) => <span key={`${key}-${v}`} style={ propStyle }>
38+
<br />{ key }: { String(v) }</span>)
39+
: null
40+
}
41+
{
42+
!description ? null :
43+
<Markdown source={ description } />
44+
}
45+
{
46+
xml && xml.size ? (<span><br /><span style={ propStyle }>xml:</span>
47+
{
48+
xml.entrySeq().map( ( [ key, v ] ) => <span key={`${key}-${v}`} style={ propStyle }><br/>&nbsp;&nbsp;&nbsp;{key}: { String(v) }</span>).toArray()
49+
}
50+
</span>): null
51+
}
52+
{
53+
enumArray && <EnumModel value={ enumArray } getComponent={ getComponent } />
54+
}
55+
</span>
5356
</span>
5457
}
5558
}

src/core/plugins/oas3/wrap-components/model.jsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ import PropTypes from "prop-types"
33
import { OAS3ComponentWrapFactory } from "../helpers"
44
import { Model } from "core/components/model"
55

6-
76
class ModelComponent extends Component {
87
static propTypes = {
98
schema: PropTypes.object.isRequired,

src/style/_layout.scss

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -699,7 +699,6 @@ body
699699
.renderedMarkdown {
700700
p {
701701
@include text_body();
702-
font-size: 14px;
703702
margin-top: 0px;
704703
margin-bottom: 0px;
705704
}

src/style/_models.scss

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -227,15 +227,19 @@ span
227227
{
228228
> span.model
229229
{
230-
padding: 0 0 0 10px;
231-
232230
.brace-close
233231
{
234232
padding: 0 0 0 10px;
235233
}
236234
}
237235
}
238236

237+
.prop-name
238+
{
239+
display: inline-block;
240+
width: 100px;
241+
}
242+
239243
.prop-type
240244
{
241245
color: #55a;

0 commit comments

Comments
 (0)