wavesurfer-react
Version:
react wrapper for wavesurfer.js
25 lines (22 loc) • 613 B
JavaScript
import { useRef, useEffect } from 'react';
function useRegionEvent(ref, eventName, callback) {
const callbackRef = useRef(null);
useEffect(()=>{
if (!ref) {
return;
}
if (callback) {
callbackRef.current = (...args)=>callback(ref, ...args);
ref.on(eventName, callbackRef.current);
}
return ()=>{
callbackRef.current && ref.un(eventName, callbackRef.current);
callbackRef.current = null;
};
}, [
ref,
eventName,
callback
]);
}
export { useRegionEvent as default };