UNPKG

@coursebuilder/commerce-next

Version:

Commerce Functionality for Course Builder with Next.js

19 lines (18 loc) 732 B
import * as React from 'react'; export function useDebounce(value, delay) { // 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]); return debouncedValue; }