react-css-transition
Version:
CSS Transition Component for React
36 lines (34 loc) • 1.57 kB
JavaScript
import { withProps, withHandlers, isolate, integrate } from "reassemble";
import { parseTransition } from "../utils/parseTransition";
import { parseComputedTransition } from "../utils/parseComputedTransition";
import { memoize } from "../utils/memoize";
export var withTransitionInfo = isolate(withHandlers(function () {
var memoized = memoize(function (node) { return parseComputedTransition(getComputedStyle(node)); }, function (node) { return node.className; });
return {
parseComputedTransitionMemoized: function () { return memoized; },
};
}), withProps(function (_a) {
var style = _a.style, className = _a.className, transitionState = _a.transitionState, getDOMNode = _a.getDOMNode, parseComputedTransitionMemoized = _a.parseComputedTransitionMemoized;
if (transitionState.inTransition) {
var parsed = void 0;
if (style && style.transition) {
parsed = parseTransition(style.transition);
}
else {
var node = getDOMNode();
node.className = className;
parsed = parseComputedTransitionMemoized(node);
}
var first = parsed[0], last = parsed[1];
return {
transitionInfo: {
firstPropertyDelay: first.delay,
firstProperty: first.property,
lastProperty: last.property,
totalDuration: last.duration + last.delay,
},
};
}
return { transitionInfo: {} };
}), integrate("transitionInfo"));
//# sourceMappingURL=withTransitionInfo.js.map