UNPKG

react-autosuggestions

Version:

An accessible React component to take the pain out of creating auto-suggestion components

32 lines (26 loc) 940 B
import React from "react"; function useDebounce(value, delay, isOpen) { // State and setters for debounced value const [debouncedValue, setDebouncedValue] = React.useState(value); React.useEffect( () => { // Update debounced value after delay const handler = setTimeout(() => { setDebouncedValue(value); }, delay); // Cancel the timeout if value changes (also on delay change or unmount) // This is how we prevent debounced value from updating if value is changed ... // .. within the delay period. Timeout gets cleared and restarted. return () => { clearTimeout(handler); }; }, [value, delay, isOpen] // Only re-call effect if value or delay changes ); if (isOpen) { return debouncedValue; } else { return ""; } } export { useDebounce };