diff --git a/src/core/components/operation.jsx b/src/core/components/operation.jsx index 31f52cda..ad268265 100644 --- a/src/core/components/operation.jsx +++ b/src/core/components/operation.jsx @@ -126,6 +126,7 @@ export default class Operation extends PureComponent { let schemes = operation.get("schemes") let parameters = getList(operation, ["parameters"]) let operationId = operation.get("__originalOperationId") + let operationScheme = specSelectors.operationScheme(path, method) const Responses = getComponent("responses") const Parameters = getComponent( "parameters" ) @@ -211,7 +212,8 @@ export default class Operation extends PureComponent { + specActions={ specActions } + operationScheme={ operationScheme } /> : null } diff --git a/src/core/components/schemes.jsx b/src/core/components/schemes.jsx index f8adeb28..0b397d03 100644 --- a/src/core/components/schemes.jsx +++ b/src/core/components/schemes.jsx @@ -6,7 +6,8 @@ export default class Schemes extends React.Component { specActions: PropTypes.object.isRequired, schemes: PropTypes.object.isRequired, path: PropTypes.string, - method: PropTypes.string + method: PropTypes.string, + operationScheme: PropTypes.string } componentWillMount() { @@ -16,17 +17,18 @@ export default class Schemes extends React.Component { this.setScheme(schemes.first()) } - onChange =( e ) => { - this.setScheme( e.target.value ) - } - componentWillReceiveProps(nextProps) { - if(nextProps.schemes !== this.props.schemes) { + if ( this.props.operationScheme && !nextProps.schemes.has(this.props.operationScheme) ) { + //fire 'change' event if our selected scheme is no longer an option this.setScheme(nextProps.schemes.first()) } } - setScheme =( value ) => { + onChange =( e ) => { + this.setScheme( e.target.value ) + } + + setScheme = ( value ) => { let { path, method, specActions } = this.props specActions.setScheme( value, path, method )