UNPKG

react-css-transition

Version:
36 lines (34 loc) 1.58 kB
import { withHandlers, isolate, onWillReceiveProps, onDidUpdate, onWillUnmount } from "reassemble"; export var timeoutMultiplier = 3; export var withTimeout = isolate(withHandlers(function () { var timeoutID; return { timeoutIn: function (_a) { var timeout = _a.timeout; return function (ms) { return timeoutID = setTimeout(timeout, ms); }; }, cancel: function () { return function () { return clearTimeout(timeoutID); }; }, }; }), onWillReceiveProps(function (_a, _b) { var inTransition = _a.transitionState.inTransition, active = _a.active; var nextInTransition = _b.transitionState.inTransition, cancel = _b.cancel, nextActive = _b.active; var inTransitionChanged = inTransition !== nextInTransition; var interrupted = nextInTransition && active !== nextActive; if (inTransitionChanged || interrupted) { cancel(); } }), onDidUpdate(function (_a, _b) { var inTransition = _a.transitionState.inTransition, active = _a.active; var nextInTransition = _b.transitionState.inTransition, totalDuration = _b.transitionInfo.totalDuration, timeoutIn = _b.timeoutIn, nextActive = _b.active; var newTransition = !inTransition && nextInTransition; var interrupted = nextInTransition && active !== nextActive; if (newTransition || interrupted) { if (nextInTransition) { timeoutIn(totalDuration * timeoutMultiplier); } } }), onWillUnmount(function (_a) { var cancel = _a.cancel; return cancel(); })); //# sourceMappingURL=withTimeout.js.map