UNPKG

@chief-editor/ui

Version:

UI Component for chief editor

1 lines 1.01 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var dom_1=require("@rc-hooks/dom"),use_1=require("@rc-hooks/use"),react_1=require("react");function useWaveAnimation(e){var t;void 0===e&&(e={});var r=react_1.useRef(null),u=react_1.useRef(null),n=react_1.useRef(null),o=e.disabled,i=void 0!==o&&o,a=e.elementRef,c=void 0===a?r:a,s=e.eventType,v=void 0===s?"capture:click":s,l=e.pseudoElement,d=void 0===l?"after":l,m=null!==(t=e.triggerRef)&&void 0!==t?t:c===r?c:u,f=react_1.useCallback((function(){var e=c.current;e&&!i&&(e.removeAttribute("data-motion-wave"),setTimeout((function(){return e.setAttribute("data-motion-wave",d)}),0),null!==n.current&&clearTimeout(n.current),n.current=setTimeout((function(){e.removeAttribute("data-motion-wave")}),2e3))}),[i,c,d]),_=use_1.useRefCallback(f);return react_1.useEffect((function(){var e=m.current;if(e)return dom_1.addEventListener(e,v,_,!0),function(){return dom_1.removeEventListener(e,v,_)}}),[]),m}exports.useWaveAnimation=useWaveAnimation;