@txdfe/at
Version:
一个设计体系组件库
57 lines (47 loc) • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Transition = Transition;
var _react = _interopRequireDefault(require("react"));
var _reactTransitionGroup = require("react-transition-group");
var _util = require("../../../util");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
/* eslint-disable import/prefer-default-export */
/**
*
* @param {object} config
* @param {function} config.enter - fired before the "entering"
* @param {function} config.exit - fired before the "exiting"
* @param {number} [config.timeout=200]
* @param {boolean} extraWrap
*/
function Transition(config) {
var extraWrap = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
return function (ComposedComponent) {
function Wrapped(props) {
var onEnter = function onEnter(node) {
if (config.enter) {
config.enter(node, _util.func.noop);
}
};
var onExit = function onExit(node) {
if (config.exit) {
config.exit(node, _util.func.noop);
}
};
var timeout = config.timeout === undefined ? 200 : config.timeout;
var child = extraWrap ? /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ComposedComponent, props)) : /*#__PURE__*/_react["default"].createElement(ComposedComponent, props);
return /*#__PURE__*/_react["default"].createElement(_reactTransitionGroup.Transition, {
timeout: timeout,
"in": props["in"],
mountOnEnter: true,
unmountOnExit: true,
onEnter: onEnter,
onExit: onExit
}, child);
}
Wrapped.displayName = "Transition.".concat(ComposedComponent.displayName || 'anonymous');
return Wrapped;
};
}