diff --git a/src/core/components/model-example.jsx b/src/core/components/model-example.jsx index 23d7c802..89f5f497 100644 --- a/src/core/components/model-example.jsx +++ b/src/core/components/model-example.jsx @@ -8,7 +8,8 @@ export default class ModelExample extends React.Component { schema: PropTypes.object.isRequired, example: PropTypes.any.isRequired, isExecute: PropTypes.bool, - getConfigs: PropTypes.func.isRequired + getConfigs: PropTypes.func.isRequired, + specPath: PropTypes.array.isRequired, } constructor(props, context) { @@ -32,7 +33,7 @@ export default class ModelExample extends React.Component { } render() { - let { getComponent, specSelectors, schema, example, isExecute, getConfigs } = this.props + let { getComponent, specSelectors, schema, example, isExecute, getConfigs, specPath } = this.props let { defaultModelExpandDepth } = getConfigs() const ModelWrapper = getComponent("ModelWrapper") @@ -53,7 +54,8 @@ export default class ModelExample extends React.Component { !isExecute && this.state.activeTab === "model" && + expandDepth={ defaultModelExpandDepth } + specPath={specPath} /> } diff --git a/src/core/components/model.jsx b/src/core/components/model.jsx index 73163388..a9dd1eff 100644 --- a/src/core/components/model.jsx +++ b/src/core/components/model.jsx @@ -10,7 +10,8 @@ export default class Model extends Component { isRef: PropTypes.bool, required: PropTypes.bool, expandDepth: PropTypes.number, - depth: PropTypes.number + depth: PropTypes.number, + specPath: PropTypes.array.isRequired, } getModelName =( ref )=> { @@ -29,13 +30,13 @@ export default class Model extends Component { } render () { - let { getComponent, specSelectors, schema, required, name, isRef } = this.props + let { getComponent, specSelectors, schema, required, name, isRef, specPath } = this.props const ObjectModel = getComponent("ObjectModel") const ArrayModel = getComponent("ArrayModel") const PrimitiveModel = getComponent("PrimitiveModel") let type = "object" let $$ref = schema && schema.get("$$ref") - + // If we weren't passed a `name` but have a ref, grab the name from the ref if ( !name && $$ref ) { name = this.getModelName( $$ref ) @@ -44,15 +45,16 @@ export default class Model extends Component { if ( !schema && $$ref ) { schema = this.getRefSchema( name ) } - + const deprecated = specSelectors.isOAS3() && schema.get("deprecated") isRef = isRef !== undefined ? isRef : !!$$ref type = schema && schema.get("type") || type - + switch(type) { case "object": return diff --git a/src/core/components/object-model.jsx b/src/core/components/object-model.jsx index 9ab4e99a..907a53a3 100644 --- a/src/core/components/object-model.jsx +++ b/src/core/components/object-model.jsx @@ -13,13 +13,13 @@ export default class ObjectModel extends Component { name: PropTypes.string, isRef: PropTypes.bool, expandDepth: PropTypes.number, - depth: PropTypes.number + depth: PropTypes.number, + specPath: PropTypes.object.isRequired } render(){ - let { schema, name, isRef, getComponent, depth, expandDepth, ...otherProps } = this.props + let { schema, name, isRef, getComponent, depth, specPath, expandDepth, ...otherProps } = this.props let { specSelectors } = otherProps - let { isOAS3 } = specSelectors let description = schema.get("description") let properties = schema.get("properties") @@ -32,14 +32,13 @@ export default class ObjectModel extends Component { const Model = getComponent("Model") const ModelCollapse = getComponent("ModelCollapse") - const JumpToPathSection = ({ name }) => { - const path = isOAS3 && isOAS3() ? `components.schemas.${name}` : `definitions.${name}` - return + const JumpToPathSection = () => { + return } const collapsedContent = ( { braceOpen }...{ braceClose } { - isRef ? : "" + isRef ? : "" } ) @@ -56,7 +55,7 @@ export default class ObjectModel extends Component { expandDepth } collapsedContent={ collapsedContent }> { braceOpen } { - !isRef ? null : + !isRef ? null : } { @@ -86,6 +85,7 @@ export default class ObjectModel extends Component { @@ -99,6 +99,7 @@ export default class ObjectModel extends Component { @@ -112,6 +113,7 @@ export default class ObjectModel extends Component { {anyOf.map((schema, k) => { return
})} @@ -126,6 +128,7 @@ export default class ObjectModel extends Component { {oneOf.map((schema, k) => { return
})} @@ -140,6 +143,7 @@ export default class ObjectModel extends Component { {not.map((schema, k) => { return
})} diff --git a/src/core/components/operation.jsx b/src/core/components/operation.jsx index c3210ddf..9a462b9b 100644 --- a/src/core/components/operation.jsx +++ b/src/core/components/operation.jsx @@ -14,7 +14,7 @@ export default class Operation extends PureComponent { showSummary: PropTypes.bool, isShownKey: CustomPropTypes.arrayOrString.isRequired, - jumpToKey: CustomPropTypes.arrayOrString.isRequired, + specPath: PropTypes.array.isRequired, allowTryItOut: PropTypes.bool, @@ -103,7 +103,7 @@ export default class Operation extends PureComponent { render() { let { isShownKey, - jumpToKey, + specPath, path, method, operation, @@ -161,7 +161,7 @@ export default class Operation extends PureComponent { return (
-
+
{/*TODO: convert this into a component, that can be wrapped and pulled in with getComponent */} {method.toUpperCase()} {path} - + {/*TODO: use wrapComponents here, swagger-ui doesn't care about jumpToPath */} { !showSummary ? null : @@ -213,6 +213,7 @@ export default class Operation extends PureComponent { } } diff --git a/src/core/components/operations.jsx b/src/core/components/operations.jsx index 6d760d53..a250b5af 100644 --- a/src/core/components/operations.jsx +++ b/src/core/components/operations.jsx @@ -123,7 +123,7 @@ export default class Operations extends React.Component { const path = op.get("path", "") const method = op.get("method", "") - const jumpToKey = `paths.${path}.${method}` + const specPath = ["paths", path, method] const operationId = op.getIn(["operation", "operationId"]) || op.getIn(["operation", "__originalOperationId"]) || opId(op.get("operation"), path, method) || op.get("id") @@ -137,7 +137,7 @@ export default class Operations extends React.Component { {...op.toObject()} isShownKey={isShownKey} - jumpToKey={jumpToKey} + specPath={specPath} showSummary={showSummary} key={isShownKey} response={ response } diff --git a/src/core/components/parameter-row.jsx b/src/core/components/parameter-row.jsx index 71a2765a..9315c9cf 100644 --- a/src/core/components/parameter-row.jsx +++ b/src/core/components/parameter-row.jsx @@ -13,7 +13,8 @@ export default class ParameterRow extends Component { onChangeConsumes: PropTypes.func.isRequired, specSelectors: PropTypes.object.isRequired, pathMethod: PropTypes.array.isRequired, - getConfigs: PropTypes.func.isRequired + getConfigs: PropTypes.func.isRequired, + specPath: PropTypes.array.isRequired, } constructor(props, context) { @@ -68,7 +69,7 @@ export default class ParameterRow extends Component { } render() { - let {param, onChange, getComponent, getConfigs, isExecute, fn, onChangeConsumes, specSelectors, pathMethod} = this.props + let {param, onChange, getComponent, getConfigs, isExecute, fn, onChangeConsumes, specSelectors, pathMethod, specPath} = this.props let { isOAS3 } = specSelectors diff --git a/src/core/components/parameters.jsx b/src/core/components/parameters.jsx index b09ece50..b6286787 100644 --- a/src/core/components/parameters.jsx +++ b/src/core/components/parameters.jsx @@ -20,7 +20,8 @@ export default class Parameters extends Component { onCancelClick: PropTypes.func, onChangeKey: PropTypes.array, pathMethod: PropTypes.array.isRequired, - getConfigs: PropTypes.func.isRequired + getConfigs: PropTypes.func.isRequired, + specPath: PropTypes.array.isRequired, } @@ -30,6 +31,7 @@ export default class Parameters extends Component { tryItOutEnabled: false, allowTryItOut: true, onChangeKey: [], + specPath: [], } onChange = ( param, value, isXml ) => { @@ -58,6 +60,7 @@ export default class Parameters extends Component { parameters, allowTryItOut, tryItOutEnabled, + specPath, fn, getComponent, @@ -92,8 +95,10 @@ export default class Parameters extends Component { { - eachMap(parameters, (parameter) => ( - ( + { responses.entrySeq().map( ([code, response]) => { + let className = tryItOutResponse && tryItOutResponse.get("status") == code ? "response_current" : "" return (