# useDebouncedValue
> Returns a debounced version of a value that updates after a specified delay.

Returns a debounced version of a value that only updates after a specified delay has elapsed without new changes. Useful for reducing the frequency of expensive operations like API calls triggered by user input.

## Import

```js
import { useDebouncedValue } from '@volue/wave-react';
```

## Example

```jsx
() => {
  const [text, setText] = React.useState('');
  const debouncedText = useDebouncedValue(text, 500);

  return (
    <Flex flow="column">
      <TextInput
        value={text}
        onChange={e => setText(e.target.value)}
        placeholder="Type something..."
      />
      <Text>{'Debounced value: ' + (debouncedText || '(empty)')}</Text>
    </Flex>
  );
};
```

---

## API reference

### Arguments

| Name    | Type     | Default | Description                         | Required |
| ------- | -------- | ------- | ----------------------------------- | -------- |
| `value` | `T`      | `—`     | The value to debounce.              | Yes      |
| `delay` | `number` | `500`   | The debounce delay in milliseconds. |          |

### Returns

`T` — The debounced value, which updates after the specified delay has elapsed without new changes.
