@samitouri / QOS-React-2 / commits / dc21b95244

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