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

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

- Page: https://pluginprobe.com/plugins/betterdocs/4.9.5/code/react-src/admin/dashboard/hooks/useAuthorsSearchQuery.js
- Raw: https://pluginprobe.com/plugins/betterdocs/4.9.5/raw/react-src/admin/dashboard/hooks/useAuthorsSearchQuery.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/useAuthorsSearchQuery.js#L10-L20`.

```javascript
import { useState, useEffect } from "react";
import useDebounce from "./useDebounce";
import apiFetch from "@wordpress/api-fetch";
import { addQueryArgs } from "@wordpress/url";

const useAuthorsSearchQuery = () => {
    const [userSearchValue, setUserSearchValue] = useState('');
    const debouncedSearchValue                  = useDebounce(userSearchValue);
    const [searchedUsers, setSeachedUsers]      = useState([]);
    const [searchLoading, setSearchLoading]     = useState(false);

    useEffect(() => {
        if( debouncedSearchValue != '' ){
            setSearchLoading(true);
            apiFetch({
                path: addQueryArgs(`wp/v2/users`, {'search':debouncedSearchValue}),
                method: "GET",
            }).then((data) => {
                if(data?.length > 0){
                    let result = data?.map((author) => ({
                        value: author.id,
                        label: author.name,
                    }));
                    setSeachedUsers(result);
                }
                setSearchLoading(false);
            })
        } else {
            setSeachedUsers([]);
        }
    }, [debouncedSearchValue]);

    return {setUserSearchValue, searchedUsers, searchLoading}
}

export default useAuthorsSearchQuery;

```
