Next.js template
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

use-debounce.js 380B

1234567891011121314151617
  1. import { useEffect, useState } from 'react';
  2. const useDebounce = (value, delay) => {
  3. const [debouncedValue, setDebouncedValue] = useState(value);
  4. useEffect(() => {
  5. const timer = setTimeout(() => setDebouncedValue(value), delay || 500);
  6. return () => {
  7. clearTimeout(timer);
  8. };
  9. }, [value, delay]);
  10. return debouncedValue;
  11. };
  12. export default useDebounce;