File size: 550 Bytes
953a39e
 
 
 
 
 
f145689
 
 
 
 
 
 
953a39e
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import { useState, useEffect } from "react";

export const useDebounce = (value, delay = 200) => {
  const [debouncedValue, setDebouncedValue] = useState(value);

  useEffect(() => {
    // Si la valeur est vide, on met à jour immédiatement
    if (!value || !value.trim()) {
      setDebouncedValue("");
      return;
    }

    // Sinon on attend le délai
    const timer = setTimeout(() => {
      setDebouncedValue(value);
    }, delay);

    return () => {
      clearTimeout(timer);
    };
  }, [value, delay]);

  return debouncedValue;
};