Correctly handle 0 in CSSTransitionGroup timeout props
Paul O’Shannessy committed
Oct 13, 2015 at 14:39 UTC
dc21b95244e87434f954577c7f0349a887681383
2 files changed
+18
-1
src/addons/transitions/ReactCSSTransitionGroup.js
+1
-1
@@ -27,7 +27,7 @@ function createTransitionTimeoutPropValidator(transitionType) {
27
// If the transition is enabled
28
if (props[enabledPropName]) {
29
// If no timeout duration is provided
30
- if (!props[timeoutPropName]) {
30
+ if (props[timeoutPropName] == null) {
31
return new Error(
32
timeoutPropName + ' wasn\'t supplied to ReactCSSTransitionGroup: ' +
33
'this can cause unreliable animations and won\'t be supported in ' +
src/addons/transitions/__tests__/ReactCSSTransitionGroup-test.js
+17
@@ -23,6 +23,7 @@ describe('ReactCSSTransitionGroup', function() {
23
var container;
24
25
beforeEach(function() {
26
+ require('mock-modules').dumpCache();
27
React = require('React');
28
ReactDOM = require('ReactDOM');
29
ReactCSSTransitionGroup = require('ReactCSSTransitionGroup');
@@ -47,6 +48,22 @@ describe('ReactCSSTransitionGroup', function() {
48
expect(console.error.argsForCall.length).toBe(1);
49
});
50
51
+ it('should not warn if timeouts is zero', function() {
52
+ ReactDOM.render(
53
+ <ReactCSSTransitionGroup
54
+ transitionName="yolo"
55
+ transitionEnter={false}
56
+ transitionLeave={true}
57
+ transitionLeaveTimeout={0}
58
+ >
59
+ <span key="one" id="one" />
60
+ </ReactCSSTransitionGroup>,
61
+ container
62
+ );
63
+
64
+ expect(console.error.argsForCall.length).toBe(0);
65
+ });
66
+
67
it('should clean-up silently after the timeout elapses', function() {
68
var a = ReactDOM.render(
69
<ReactCSSTransitionGroup