UNPKG

@chief-editor/ui

Version:

UI Component for chief editor

1 lines 911 B
import{addEventListener,removeEventListener}from"@rc-hooks/dom";import{useRefCallback}from"@rc-hooks/use";import{useCallback,useEffect,useRef}from"react";export function useWaveAnimation(e){var t;void 0===e&&(e={});var r=useRef(null),n=useRef(null),u=useRef(null),o=e.disabled,i=void 0!==o&&o,a=e.elementRef,c=void 0===a?r:a,f=e.eventType,l=void 0===f?"capture:click":f,s=e.pseudoElement,v=void 0===s?"after":s,m=null!==(t=e.triggerRef)&&void 0!==t?t:c===r?c:n,d=useCallback((function(){var e=c.current;e&&!i&&(e.removeAttribute("data-motion-wave"),setTimeout((function(){return e.setAttribute("data-motion-wave",v)}),0),null!==u.current&&clearTimeout(u.current),u.current=setTimeout((function(){e.removeAttribute("data-motion-wave")}),2e3))}),[i,c,v]),b=useRefCallback(d);return useEffect((function(){var e=m.current;if(e)return addEventListener(e,l,b,!0),function(){return removeEventListener(e,l,b)}}),[]),m}