UNPKG

react-waitforanimation

Version:

Declarative way to wait for an CSS transistion to finish before doing heavy work

1 lines 2.68 kB
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t(require("react"));else if("function"==typeof define&&define.amd)define(["react"],t);else{var n=t("object"==typeof exports?require("react"):e.React);for(var o in n)("object"==typeof exports?exports:e)[o]=n[o]}}(this,function(e){return function(e){function t(o){if(n[o])return n[o].exports;var r=n[o]={exports:{},id:o,loaded:!1};return e[o].call(r.exports,r,r.exports,t),r.loaded=!0,r.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function s(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var o=t[n];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}return function(t,n,o){return n&&e(t.prototype,n),o&&e(t,o),t}}(),u=n(1),c=o(u),f=["transitionend","OTransitionEnd","webkitTransitionEnd"],d=function(e){function t(e){r(this,t);var n=i(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return n.state={isEnded:!1,isResetted:!1},n.transitionHasEnded=n.transitionHasEnded.bind(n),n.resetAnimationState=n.resetAnimationState.bind(n),n}return s(t,e),a(t,[{key:"componentDidMount",value:function(){var e=this;null!==this._containerRef&&f.forEach(function(t){e._containerRef.addEventListener(t,function(){e.transitionHasEnded()},!1)})}},{key:"componentWillUnmount",value:function(){var e=this;f.forEach(function(t){e._containerRef.removeEventListener(t)})}},{key:"transitionHasEnded",value:function(){var e=this.state,t=e.isEnded,n=e.isResetted;n?this.setState({isResetted:!1}):t?this.setState({isEnded:!1}):(this.setState({isEnded:!0}),this.props.componentDidAnimate())}},{key:"resetAnimationState",value:function(){this.state.isResetted||this.setState({isRestted:!0})}},{key:"render",value:function(){var e=this;return c["default"].createElement("div",{ref:function(t){return e._containerRef=t}},this.props.children(this.resetAnimationState))}}]),t}(c["default"].Component);t["default"]=d},function(t,n){t.exports=e}])});