Skip to contentVibraUI
Foundation

useDebouncedValue

Returns a value that only updates after it stops changing for a delay.

Useful for search inputs and other fast-changing values that drive expensive work.

Install

npx shadcn@latest add @vibra/use-debounced-value

Needs the @vibra registry in your components.json — set it up once.

Examples

Props

PropTypeDefaultDescription
valueT—The value to debounce.
delaynumber300Milliseconds to wait after the last change before updating.
returnsT—value, delayed until it stops changing for delay ms.

Dependencies

Registry

Source

hooks/use-debounced-value.ts
import * as React from "react"

/** Returns `value`, delayed until it stops changing for `delay` ms (default 300). */
export function useDebouncedValue<T>(value: T, delay = 300): T {
  const [debounced, setDebounced] = React.useState(value)

  React.useEffect(() => {
    const timer = setTimeout(() => setDebounced(value), delay)
    return () => clearTimeout(timer)
  }, [value, delay])

  return debounced
}