Fixed debouncecallback ref

This commit is contained in:
Frikky
2025-10-20 12:11:04 +02:00
parent 16bd65a0e7
commit 11830fd38b
6 changed files with 1071 additions and 19 deletions
@@ -0,0 +1,25 @@
import { useRef, useEffect, useCallback } from "react";
export const useDebouncedCallback = (callback, delay = 300) => {
const timeoutRef = useRef(null);
const savedCallback = useRef(callback);
useEffect(() => {
savedCallback.current = callback;
}, [callback]);
useEffect(() => () => {
if (timeoutRef.current) clearTimeout(timeoutRef.current);
}, []);
return useCallback((...args) => {
if (timeoutRef.current) clearTimeout(timeoutRef.current);
timeoutRef.current = setTimeout(() => {
savedCallback.current(...args);
}, delay);
}, [delay]);
};
export default useDebouncedCallback;