diff --git a/src/core/components/model.jsx b/src/core/components/model.jsx index 58c98c27..113ad7d5 100644 --- a/src/core/components/model.jsx +++ b/src/core/components/model.jsx @@ -192,7 +192,7 @@ class ArrayModel extends Component { } -class Model extends Component { +export class Model extends Component { static propTypes = { schema: PropTypes.object.isRequired, getComponent: PropTypes.func.isRequired, diff --git a/src/core/plugins/oas3/wrap-components/index.js b/src/core/plugins/oas3/wrap-components/index.js index 25d40576..b752ea47 100644 --- a/src/core/plugins/oas3/wrap-components/index.js +++ b/src/core/plugins/oas3/wrap-components/index.js @@ -1,9 +1,11 @@ import Markdown from "./markdown" import parameters from "./parameters" import VersionStamp from "./version-stamp" +import Model from "./model" export default { Markdown, parameters, - VersionStamp + VersionStamp, + model: Model } diff --git a/src/core/plugins/oas3/wrap-components/model.jsx b/src/core/plugins/oas3/wrap-components/model.jsx new file mode 100644 index 00000000..ae6cd35a --- /dev/null +++ b/src/core/plugins/oas3/wrap-components/model.jsx @@ -0,0 +1,35 @@ +import React, { Component, PropTypes } from "react" +import { OAS3ComponentWrapFactory } from "../helpers" +import { Model } from "core/components/model" + + +class ModelComponent extends Component { + static propTypes = { + schema: PropTypes.object.isRequired, + name: PropTypes.string, + getComponent: PropTypes.func.isRequired, + specSelectors: PropTypes.object.isRequired, + expandDepth: PropTypes.number + } + + render(){ + let { schema } = this.props + let classes = ["model-box"] + let isDeprecated = schema.get("deprecated") === true + let message = null + + if(isDeprecated) { + classes.push("deprecated") + message = Deprecated: + } + return
+ {message} + +
+ } +} + +export default OAS3ComponentWrapFactory(ModelComponent) diff --git a/src/style/_models.scss b/src/style/_models.scss index 378a502c..9c6cb706 100644 --- a/src/style/_models.scss +++ b/src/style/_models.scss @@ -195,6 +195,11 @@ section.models position: relative; top: 4px; } + + &.deprecated + { + opacity: .5; + } } @@ -205,6 +210,14 @@ section.models @include text_headline(#555); } +.model-deprecated-warning +{ + font-size: 16px; + font-weight: 600; + margin-right: 1em; + @include text_headline($_color-delete); +} + span {