react-stepper-primitive
Advanced tools
Comparing version 1.0.2 to 1.1.0
@@ -109,2 +109,22 @@ 'use strict'; | ||
expect(wrapper.state('value')).toBe(0); | ||
}); | ||
describe('enableReinitialize', function () { | ||
test('true: value is updated to new default if defaultValue changes', function () { | ||
var _setup9 = setup({ defaultValue: 33, enableReinitialize: true }), | ||
wrapper = _setup9.wrapper; | ||
expect(wrapper.state('value')).toBe(33); | ||
wrapper.setProps({ defaultValue: 42 }); | ||
expect(wrapper.state('value')).toBe(42); | ||
}); | ||
test('false: value remains unchanged if defaultValue changes', function () { | ||
var _setup10 = setup({ defaultValue: 33 }), | ||
wrapper = _setup10.wrapper; | ||
expect(wrapper.state('value')).toBe(33); | ||
wrapper.setProps({ defaultValue: 42 }); | ||
expect(wrapper.state('value')).toBe(33); | ||
}); | ||
}); |
@@ -116,2 +116,9 @@ 'use strict'; | ||
_createClass(StepperPrimitive, [{ | ||
key: 'componentWillReceiveProps', | ||
value: function componentWillReceiveProps(nextProps) { | ||
if (this.props.enableReinitialize && this.props.defaultValue !== nextProps.defaultValue && this.props.defaultValue === this.state.value) { | ||
this.setValue(nextProps.defaultValue); | ||
} | ||
} | ||
}, { | ||
key: 'isControlled', | ||
@@ -153,3 +160,4 @@ value: function isControlled() { | ||
onChange: PropTypes.func, | ||
render: PropTypes.func.isRequired | ||
render: PropTypes.func.isRequired, | ||
enableReinitialize: PropTypes.bool | ||
}, _class.defaultProps = { | ||
@@ -160,3 +168,4 @@ defaultValue: 0, | ||
max: Number.MAX_VALUE, | ||
onChange: function onChange() {} | ||
onChange: function onChange() {}, | ||
enableReinitialize: false | ||
}, _temp2); |
{ | ||
"name": "react-stepper-primitive", | ||
"main": "dist/index.js", | ||
"version": "1.0.2", | ||
"version": "1.1.0", | ||
"description": "A React primitive for building a stepper component", | ||
@@ -16,3 +16,4 @@ "scripts": { | ||
"test", | ||
"expect" | ||
"expect", | ||
"describe" | ||
] | ||
@@ -35,3 +36,3 @@ }, | ||
"babel-cli": "^6.26.0", | ||
"babel-eslint": "^8.0.0", | ||
"babel-eslint": "^7.2.3", | ||
"babel-preset-es2015": "^6.24.1", | ||
@@ -38,0 +39,0 @@ "babel-preset-react": "^6.24.1", |
@@ -117,2 +117,8 @@ # react-stepper-primitive [](https://travis-ci.org/ajoslin/react-stepper-primitive) | ||
#### enableReinitialize | ||
> `boolean` | default false | optional | ||
Control whether the current value (if unchanged) will update to the new default if `defaultValue` changes. | ||
## Related Work | ||
@@ -119,0 +125,0 @@ |
18716
260
130