Files
video-gen/video-gen-admin/node_modules/@rc-component/trigger/es/hooks/useDelay.js
T
2026-05-25 17:08:18 +08:00

28 lines
592 B
JavaScript

import * as React from 'react';
export default function useDelay() {
const delayRef = React.useRef(null);
const clearDelay = () => {
if (delayRef.current) {
clearTimeout(delayRef.current);
delayRef.current = null;
}
};
const delayInvoke = (callback, delay) => {
clearDelay();
if (delay === 0) {
callback();
} else {
delayRef.current = setTimeout(() => {
callback();
}, delay * 1000);
}
};
// Clean up on unmount
React.useEffect(() => {
return () => {
clearDelay();
};
}, []);
return delayInvoke;
}