You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
1.7 KiB
69 lines
1.7 KiB
10 years ago
|
/**
|
||
|
* Copyright 2013-2015, Facebook, Inc.
|
||
|
* All rights reserved.
|
||
|
*
|
||
|
* This source code is licensed under the BSD-style license found in the
|
||
|
* LICENSE file in the root directory of this source tree. An additional grant
|
||
|
* of patent rights can be found in the PATENTS file in the same directory.
|
||
|
*
|
||
|
* @typechecks
|
||
|
* @providesModule ReactCSSTransitionGroup
|
||
|
*/
|
||
|
|
||
|
'use strict';
|
||
|
|
||
|
var React = require("./React");
|
||
|
|
||
|
var assign = require("./Object.assign");
|
||
|
|
||
|
var ReactTransitionGroup = React.createFactory(
|
||
|
require("./ReactTransitionGroup")
|
||
|
);
|
||
|
var ReactCSSTransitionGroupChild = React.createFactory(
|
||
|
require("./ReactCSSTransitionGroupChild")
|
||
|
);
|
||
|
|
||
|
var ReactCSSTransitionGroup = React.createClass({
|
||
|
displayName: 'ReactCSSTransitionGroup',
|
||
|
|
||
|
propTypes: {
|
||
|
transitionName: React.PropTypes.string.isRequired,
|
||
|
transitionAppear: React.PropTypes.bool,
|
||
|
transitionEnter: React.PropTypes.bool,
|
||
|
transitionLeave: React.PropTypes.bool
|
||
|
},
|
||
|
|
||
|
getDefaultProps: function() {
|
||
|
return {
|
||
|
transitionAppear: false,
|
||
|
transitionEnter: true,
|
||
|
transitionLeave: true
|
||
|
};
|
||
|
},
|
||
|
|
||
|
_wrapChild: function(child) {
|
||
|
// We need to provide this childFactory so that
|
||
|
// ReactCSSTransitionGroupChild can receive updates to name, enter, and
|
||
|
// leave while it is leaving.
|
||
|
return ReactCSSTransitionGroupChild(
|
||
|
{
|
||
|
name: this.props.transitionName,
|
||
|
appear: this.props.transitionAppear,
|
||
|
enter: this.props.transitionEnter,
|
||
|
leave: this.props.transitionLeave
|
||
|
},
|
||
|
child
|
||
|
);
|
||
|
},
|
||
|
|
||
|
render: function() {
|
||
|
return (
|
||
|
ReactTransitionGroup(
|
||
|
assign({}, this.props, {childFactory: this._wrapChild})
|
||
|
)
|
||
|
);
|
||
|
}
|
||
|
});
|
||
|
|
||
|
module.exports = ReactCSSTransitionGroup;
|