UNPKG

@spotinst/spinnaker-deck

Version:

Spinnaker-Deck service, forked with support to Spotinst

19 lines (16 loc) 580 B
import { useEffect, useState } from 'react'; /** * A react hook which returns a debounced value * * @param value the immediate value * @param debounceMs: the debounce time, in ms */ export function useDebouncedValue<T>(value: T, debounceMs: number): [T, boolean] { const [debouncedValue, setDebouncedValue] = useState(value); const isDebouncing = value !== debouncedValue; useEffect(() => { const id = setTimeout(() => setDebouncedValue(value), debounceMs); return () => clearTimeout(id); }, [value, debounceMs]); return [debouncedValue, isDebouncing]; }