Spaces:
Running
Running
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; | |
}; | |