Bug fix for #3136 - Update state when scheme options change and previously selected option is no longer available
This commit is contained in:
@@ -131,6 +131,7 @@ export default class Operation extends React.Component {
|
|||||||
let schemes = operation.get("schemes")
|
let schemes = operation.get("schemes")
|
||||||
let parameters = getList(operation, ["parameters"])
|
let parameters = getList(operation, ["parameters"])
|
||||||
let operationId = operation.get("__originalOperationId")
|
let operationId = operation.get("__originalOperationId")
|
||||||
|
let operationScheme = specSelectors.operationScheme(path, method)
|
||||||
|
|
||||||
const Responses = getComponent("responses")
|
const Responses = getComponent("responses")
|
||||||
const Parameters = getComponent( "parameters" )
|
const Parameters = getComponent( "parameters" )
|
||||||
@@ -216,7 +217,8 @@ export default class Operation extends React.Component {
|
|||||||
<Schemes schemes={ schemes }
|
<Schemes schemes={ schemes }
|
||||||
path={ path }
|
path={ path }
|
||||||
method={ method }
|
method={ method }
|
||||||
specActions={ specActions }/>
|
specActions={ specActions }
|
||||||
|
operationScheme={ operationScheme } />
|
||||||
</div> : null
|
</div> : null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ export default class Schemes extends React.Component {
|
|||||||
specActions: PropTypes.object.isRequired,
|
specActions: PropTypes.object.isRequired,
|
||||||
schemes: PropTypes.object.isRequired,
|
schemes: PropTypes.object.isRequired,
|
||||||
path: PropTypes.string,
|
path: PropTypes.string,
|
||||||
method: PropTypes.string
|
method: PropTypes.string,
|
||||||
|
operationScheme: PropTypes.string
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillMount() {
|
componentWillMount() {
|
||||||
@@ -16,11 +17,18 @@ export default class Schemes extends React.Component {
|
|||||||
this.setScheme(schemes.first())
|
this.setScheme(schemes.first())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentWillReceiveProps(nextProps) {
|
||||||
|
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())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
onChange =( e ) => {
|
onChange =( e ) => {
|
||||||
this.setScheme( e.target.value )
|
this.setScheme( e.target.value )
|
||||||
}
|
}
|
||||||
|
|
||||||
setScheme =( value ) => {
|
setScheme = ( value ) => {
|
||||||
let { path, method, specActions } = this.props
|
let { path, method, specActions } = this.props
|
||||||
|
|
||||||
specActions.setScheme( value, path, method )
|
specActions.setScheme( value, path, method )
|
||||||
|
|||||||
Reference in New Issue
Block a user