feature: allowEmptyValue controls (#4788)

* add baseline tests

* coerce empty strings to null when updating parameter values

* add ParameterIncludeEmpty

* add redux management for empty parameter value inclusion state

* use name+in keying for state management instead of hash keying

* update new redux method usages to name+in keying

* coerce empty Immutable iterables in onChangeWrapper

* OAS3 tests & support

* add included empty parameters to requests before dispatching to Swagger Client

* make empty inclusion interface prettier

* add tests for #4587

* linter fixes

* check for truthy value before reaching into property
This commit is contained in:
kyle
2018-08-04 01:26:07 -07:00
committed by GitHub
parent dd3afdc456
commit 87296702c6
18 changed files with 1363 additions and 4 deletions

View File

@@ -0,0 +1,27 @@
import React from "react"
import cx from "classnames"
import PropTypes from "prop-types"
import ImPropTypes from "react-immutable-proptypes"
export const ParameterIncludeEmpty = ({ param, isIncluded, onChange, isDisabled }) => {
const onCheckboxChange = e => {
onChange(e.target.checked)
}
if(!param.get("allowEmptyValue")) {
return null
}
return <div className={cx("parameter__empty_value_toggle", {
"disabled": isDisabled
})}>
<input type="checkbox" disabled={isDisabled} checked={!isDisabled && isIncluded} onChange={onCheckboxChange} />
Send empty value
</div>
}
ParameterIncludeEmpty.propTypes = {
param: ImPropTypes.map.isRequired,
isIncluded: PropTypes.bool.isRequired,
isDisabled: PropTypes.bool.isRequired,
onChange: PropTypes.func.isRequired,
}
export default ParameterIncludeEmpty