# betterdocs/4.9.5/react-src/admin/dashboard/hooks/useDebounce.js

BetterDocs – AI Documentation, Knowledge Base, MCP Server, Docs, Wikis, FAQ &amp; Chatbot, version 4.9.5. 30 lines.

- Page: https://pluginprobe.com/plugins/betterdocs/4.9.5/code/react-src/admin/dashboard/hooks/useDebounce.js
- Raw: https://pluginprobe.com/plugins/betterdocs/4.9.5/raw/react-src/admin/dashboard/hooks/useDebounce.js
- Modified: 2026-10-12T10:07:14+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/betterdocs/4.9.5/code/react-src/admin/dashboard/hooks/useDebounce.js#L10-L20`.

```javascript
import { useState, useEffect } from "react";

/**
 *
 * @param {string|number} searchKeyword
 * @param {number} delayTimeout
 *
 * @returns {string|number} returns debouncedKeyword
 */
const useDebounce = (searchKeyword, delay = 500) => {
  const [debouncedKeyword, setDebouncedKeyword] = useState(searchKeyword);

  /**
   * Debounce The Search Keyword
   */
  useEffect(() => {
    let timeout = setTimeout(() => {
      setDebouncedKeyword(searchKeyword);
    }, delay);

    return () => {
      clearTimeout(timeout);
    };
  }, [searchKeyword, delay]);

  return debouncedKeyword;
};

export default useDebounce;

```
