antui-mobile
Version:
mobile ui for antd
121 lines (92 loc) • 3.76 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getPrototypeOf = require('babel-runtime/core-js/object/get-prototype-of');
var _getPrototypeOf2 = _interopRequireDefault(_getPrototypeOf);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactAddonsCssTransitionGroup = require('react-addons-css-transition-group');
var _reactAddonsCssTransitionGroup2 = _interopRequireDefault(_reactAddonsCssTransitionGroup);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* 页面过渡
*/
var TransitionPages = function (_Component) {
(0, _inherits3.default)(TransitionPages, _Component);
function TransitionPages() {
(0, _classCallCheck3.default)(this, TransitionPages);
return (0, _possibleConstructorReturn3.default)(this, (TransitionPages.__proto__ || (0, _getPrototypeOf2.default)(TransitionPages)).apply(this, arguments));
}
(0, _createClass3.default)(TransitionPages, [{
key: 'render',
value: function render() {
var _props = this.props,
prefixCls = _props.prefixCls,
className = _props.className,
location = _props.location,
children = _props.children,
_selfTransition = _props.transition;
var classes = (0, _classnames2.default)(prefixCls, className);
var transition = 'sfr';
var transitionKey = void 0;
if (location && location.pathname) {
transitionKey = location.pathname;
} else if (children && children.props && children.props.location) {
transitionKey = children.props.location.pathname;
}
if (location && location.query.t) {
transition = location.query.t;
} else if (children.props && children.props.transition) {
transition = children.props.transition;
} else if (_selfTransition) {
transition = _selfTransition;
}
var childrenComp = null;
if (children && children.length) {
childrenComp = children;
} else if (_react2.default.isValidElement(children)) {
childrenComp = transitionKey ? _react2.default.cloneElement(children, {
key: transitionKey
}) : children;
}
return _react2.default.createElement(
_reactAddonsCssTransitionGroup2.default,
{
component: 'div',
className: classes,
transitionName: 'page-transition-' + transition,
transitionEnterTimeout: 400,
transitionLeaveTimeout: 400
},
childrenComp
);
}
}]);
return TransitionPages;
}(_react.Component);
TransitionPages.propTypes = {
prefixCls: _react.PropTypes.string,
className: _react.PropTypes.string,
children: _react.PropTypes.node,
location: _react.PropTypes.object,
/**
* 可以直接指定转场动画,或由子类传入,或由url传入
*/
transition: _react.PropTypes.string
};
TransitionPages.defaultProps = {
prefixCls: "antui-transition-pages"
};
exports.default = TransitionPages;
module.exports = exports['default'];