Просмотр исходного кода

Bug fix for #3136 - Update state when scheme options change and previously selected option is no longer available

bubble
Owen Conti 7 лет назад
Родитель
Сommit
789534c587
2 измененных файлов: 13 добавлений и 3 удалений
  1. +3
    -1
      src/core/components/operation.jsx
  2. +10
    -2
      src/core/components/schemes.jsx

+ 3
- 1
src/core/components/operation.jsx Просмотреть файл

@@ -131,6 +131,7 @@ export default class Operation extends React.Component {
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" )
@@ -216,7 +217,8 @@ export default class Operation extends React.Component {
<Schemes schemes={ schemes }
path={ path }
method={ method }
specActions={ specActions }/>
specActions={ specActions }
operationScheme={ operationScheme } />
</div> : null
}



+ 10
- 2
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,11 +17,18 @@ export default class Schemes extends React.Component {
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 ) => {
this.setScheme( e.target.value )
}

setScheme =( value ) => {
setScheme = ( value ) => {
let { path, method, specActions } = this.props

specActions.setScheme( value, path, method )


Загрузка…
Отмена
Сохранить