# elementor/3.8.0-beta1/app/modules/kit-library/assets/js/hooks/use-debounced-callback.js

Elementor Website Builder – more than just a page builder, version 3.8.0-beta1. 21 lines.

- Page: https://pluginprobe.com/plugins/elementor/3.8.0-beta1/code/app/modules/kit-library/assets/js/hooks/use-debounced-callback.js
- Raw: https://pluginprobe.com/plugins/elementor/3.8.0-beta1/raw/app/modules/kit-library/assets/js/hooks/use-debounced-callback.js
- Modified: 2022-09-19T16:26:20+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/elementor/3.8.0-beta1/code/app/modules/kit-library/assets/js/hooks/use-debounced-callback.js#L10-L20`.

```javascript
import { useRef, useCallback } from 'react';

export default function useDebouncedCallback( callback, wait ) {
	const timeout = useRef();

	return useCallback(
		( ...args ) => {
			const later = () => {
				clearTimeout( timeout.current );

				callback( ...args );
			};

			clearTimeout( timeout.current );

			timeout.current = setTimeout( later, wait );
		},
		[ callback, wait ],
	);
}

```
