use-video-interval
Version:
A React hook for executing a callback at customizable intervals during video playback.
3 lines (2 loc) • 718 B
JavaScript
;var e=require("react");exports.useVideoInterval=function(r){var t=r.videoRef,n=r.intervalCallbacks,a=r.options||{},u=a.threshold,c=void 0===u?.5:u,i=a.triggerOnce,o=void 0===i||i,s=e.useRef(new Set),f=e.useCallback((function(e){for(var r=e.currentTime,t=0,a=Object.entries(n);t<a.length;t++){var u=a[t],i=u[0],f=u[1],v=parseFloat(i),d=Math.abs(r-v),l=s.current.has(v);d<=c&&(!o||!l)&&(f(),o&&s.current.add(v))}}),[n,c,o]);e.useEffect((function(){var e=t.current,r=s.current;if(e){var n=function(){return f(e)};return e.addEventListener("timeupdate",n),function(){e.removeEventListener("timeupdate",n),r.clear()}}}),[f]),e.useEffect((function(){s.current.clear()}),[n])};
//# sourceMappingURL=index.js.map