Browse Source

Merge pull request #3295 from owenconti/bug/3136-operation-scheme-update

Bug fix for #3136 - Update state when scheme options change
bubble
shockey 7 years ago
committed by GitHub
parent
commit
4d52c30b53
2 changed files with 12 additions and 8 deletions
  1. +3
    -1
      src/core/components/operation.jsx
  2. +9
    -7
      src/core/components/schemes.jsx

+ 3
- 1
src/core/components/operation.jsx View File

@@ -126,6 +126,7 @@ export default class Operation extends PureComponent {
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" )
@@ -211,7 +212,8 @@ export default class Operation extends PureComponent {
<Schemes schemes={ schemes } <Schemes schemes={ schemes }
path={ path } path={ path }
method={ method } method={ method }
specActions={ specActions }/>
specActions={ specActions }
operationScheme={ operationScheme } />
</div> : null </div> : null
} }




+ 9
- 7
src/core/components/schemes.jsx View File

@@ -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,17 +17,18 @@ export default class Schemes extends React.Component {
this.setScheme(schemes.first()) this.setScheme(schemes.first())
} }


onChange =( e ) => {
this.setScheme( e.target.value )
}

componentWillReceiveProps(nextProps) { 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()) this.setScheme(nextProps.schemes.first())
} }
} }


setScheme =( value ) => {
onChange =( e ) => {
this.setScheme( e.target.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 )


Loading…
Cancel
Save