mirror of
https://github.com/vercel/commerce.git
synced 2025-05-11 20:27:51 +00:00
17 lines
446 B
TypeScript
17 lines
446 B
TypeScript
import { useEffect, useRef, useState } from 'react';
|
|
|
|
export const useDebounce = (value: string, delay = 500) => {
|
|
const [debouncedValue, setDebouncedValue] = useState('');
|
|
const timerRef = useRef<ReturnType<typeof setTimeout>>();
|
|
|
|
useEffect(() => {
|
|
timerRef.current = setTimeout(() => setDebouncedValue(value), delay);
|
|
|
|
return () => {
|
|
clearTimeout(timerRef.current);
|
|
};
|
|
}, [value, delay]);
|
|
|
|
return debouncedValue;
|
|
};
|