Merge pull request #3345 from owenconti/bug/3100-sub-objects-as-required

Fixes #3100 - Required sub objects
This commit is contained in:
shockey
2017-07-21 19:25:38 -07:00
committed by GitHub
2 changed files with 6 additions and 4 deletions

View File

@@ -48,7 +48,7 @@ export default class Model extends Component {
switch(type) { switch(type) {
case "object": case "object":
return <ObjectModel className="object" { ...this.props } schema={ modelSchema } return <ObjectModel className="object" { ...this.props } schema={ modelSchema }
name={ name || modelName } name={ name || modelName } required={ required }
isRef={ isRef!== undefined ? isRef : !!$$ref }/> isRef={ isRef!== undefined ? isRef : !!$$ref }/>
case "array": case "array":
return <ArrayModel className="array" { ...this.props } schema={ modelSchema } required={ required } /> return <ArrayModel className="array" { ...this.props } schema={ modelSchema } required={ required } />

View File

@@ -23,7 +23,7 @@ export default class ObjectModel extends Component {
let properties = schema.get("properties") let properties = schema.get("properties")
let additionalProperties = schema.get("additionalProperties") let additionalProperties = schema.get("additionalProperties")
let title = schema.get("title") || name let title = schema.get("title") || name
let required = schema.get("required") let requiredProperties = schema.get("required")
const JumpToPath = getComponent("JumpToPath", true) const JumpToPath = getComponent("JumpToPath", true)
const Markdown = getComponent("Markdown") const Markdown = getComponent("Markdown")
@@ -63,14 +63,16 @@ export default class ObjectModel extends Component {
{ {
!(properties && properties.size) ? null : properties.entrySeq().map( !(properties && properties.size) ? null : properties.entrySeq().map(
([key, value]) => { ([key, value]) => {
let isRequired = List.isList(required) && required.contains(key) let isRequired = List.isList(requiredProperties) && requiredProperties.contains(key)
let propertyStyle = { verticalAlign: "top", paddingRight: "0.2em" } let propertyStyle = { verticalAlign: "top", paddingRight: "0.2em" }
if ( isRequired ) { if ( isRequired ) {
propertyStyle.fontWeight = "bold" propertyStyle.fontWeight = "bold"
} }
return (<tr key={key}> return (<tr key={key}>
<td style={ propertyStyle }>{ key }:</td> <td style={ propertyStyle }>
{ key }{ isRequired && <span style={{ color: "red" }}>*</span> }
</td>
<td style={{ verticalAlign: "top" }}> <td style={{ verticalAlign: "top" }}>
<Model key={ `object-${name}-${key}_${value}` } { ...props } <Model key={ `object-${name}-${key}_${value}` } { ...props }
required={ isRequired } required={ isRequired }