@wbe/react-transition
Version:
    • 1.53 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("react")):"function"==typeof define&&define.amd?define(["exports","react"],n):n((e||self).reactTransition={},e.react)}(this,function(e,n){function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=/*#__PURE__*/t(n);function i(e){const t=n.useRef(null),[i,u]=n.useState(()=>e.appear?null:e.if?"visible":"hidden"),o=n.useRef(!0);n.useLayoutEffect(()=>{e.appear||!o.current?u(e.if?"play-in":"play-out"):o.current=!1},[e.if,e.appear]);const l=n.useRef(null);return n.useLayoutEffect(()=>{const n=t.current;n&&("play-in"!==i&&"play-out"!==i||l.current?.(),function(){try{function t(){const t=function(){if("play-out"===i)return Promise.resolve(new Promise((t,r)=>{e.playOut?.(n,t),l.current=r})).then(function(){e.onPlayOutComplete?.(),e.dispatchPlayState?.("hidden"),u("hidden")})}();if(t&&t.then)return t.then(function(){})}const r=function(){if("play-in"===i)return Promise.resolve(new Promise((t,r)=>{e.playIn?.(n,t),l.current=r})).then(function(){e.onPlayInComplete?.(),u("visible")})}();Promise.resolve(r&&r.then?r.then(t):t())}catch(o){return Promise.reject(o)}}(),e.dispatchPlayState?.(i))},[i]),"hidden"===i&&e.unmountAfterPlayOut?null:/*#__PURE__*/r.default.cloneElement(e.children,{className:[e.children.props.className||null,`transition-${i}`].filter(e=>e).join(" "),ref:e=>t.current=e})}i.defaultProps={if:!0,children:null,appear:!1,unmountAfterPlayOut:!0},e.Transition=i});
//# sourceMappingURL=index.umd.js.map