@wordpress/editor
Version:
Enhanced block editor for WordPress posts.
25 lines (24 loc) • 775 B
JavaScript
// packages/editor/src/components/collaborators-overlay/use-debounced-recompute.ts
import { useCallback, useRef, useState } from "@wordpress/element";
function useDebouncedRecompute(delayMs) {
const [recomputeToken, setRecomputeToken] = useState(0);
const timeoutRef = useRef(null);
const rerenderAfterDelay = useCallback(() => {
if (timeoutRef.current) {
clearTimeout(timeoutRef.current);
}
timeoutRef.current = setTimeout(() => {
setRecomputeToken((t) => t + 1);
}, delayMs);
return () => {
if (timeoutRef.current) {
clearTimeout(timeoutRef.current);
}
};
}, [delayMs]);
return [recomputeToken, rerenderAfterDelay];
}
export {
useDebouncedRecompute
};
//# sourceMappingURL=use-debounced-recompute.mjs.map