@mussnad/frappe-react-query
Version:
A React Query SDK for Frappe
229 lines (228 loc) • 7.54 kB
TypeScript
import { Filter, SearchResult } from '../types';
/**
* Hook to search for documents - only works with Frappe v15+
*
* @param doctype - name of the doctype (table) where we are performing our search
* @param text - search text
* @param filters - (optional) the results will be filtered based on these
* @param limit - (optional) the number of results to return. Defaults to 20
* @param debounce - (optional) the number of milliseconds to wait before making the API call. Defaults to 250ms.
*
* @returns Returns an object with the following properties: data, error, isFetching, mutate
*
* @example
*
* const [searchText, setSearchText] = useState("")
* const { data, error, isFetching, mutate } = useSearch("User", searchText)
*/
export declare const useSearch: (doctype: string, text: string, filters?: Filter[], limit?: number, debounce?: number) => {
data: {
message: SearchResult[];
} | undefined;
error: Error | null;
isFetching: boolean;
mutate: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
isError: true;
isPending: false;
isLoading: false;
isLoadingError: false;
isRefetchError: true;
isSuccess: false;
isPlaceholderData: false;
status: "error";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
fetchStatus: import('@tanstack/react-query').FetchStatus;
promise: Promise<{
message: SearchResult[];
}>;
} | {
data: {
message: SearchResult[];
} | undefined;
error: Error | null;
isFetching: boolean;
mutate: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
isError: false;
isPending: false;
isLoading: false;
isLoadingError: false;
isRefetchError: false;
isSuccess: true;
isPlaceholderData: false;
status: "success";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
fetchStatus: import('@tanstack/react-query').FetchStatus;
promise: Promise<{
message: SearchResult[];
}>;
} | {
data: {
message: SearchResult[];
} | undefined;
error: Error | null;
isFetching: boolean;
mutate: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
isError: true;
isPending: false;
isLoading: false;
isLoadingError: true;
isRefetchError: false;
isSuccess: false;
isPlaceholderData: false;
status: "error";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
fetchStatus: import('@tanstack/react-query').FetchStatus;
promise: Promise<{
message: SearchResult[];
}>;
} | {
data: {
message: SearchResult[];
} | undefined;
error: Error | null;
isFetching: boolean;
mutate: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
isError: false;
isPending: true;
isLoading: true;
isLoadingError: false;
isRefetchError: false;
isSuccess: false;
isPlaceholderData: false;
status: "pending";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
fetchStatus: import('@tanstack/react-query').FetchStatus;
promise: Promise<{
message: SearchResult[];
}>;
} | {
data: {
message: SearchResult[];
} | undefined;
error: Error | null;
isFetching: boolean;
mutate: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
isError: false;
isPending: true;
isLoadingError: false;
isRefetchError: false;
isSuccess: false;
isPlaceholderData: false;
status: "pending";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isLoading: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
fetchStatus: import('@tanstack/react-query').FetchStatus;
promise: Promise<{
message: SearchResult[];
}>;
} | {
data: {
message: SearchResult[];
} | undefined;
error: Error | null;
isFetching: boolean;
mutate: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
isError: false;
isPending: false;
isLoading: false;
isLoadingError: false;
isRefetchError: false;
isSuccess: true;
isPlaceholderData: true;
status: "success";
dataUpdatedAt: number;
errorUpdatedAt: number;
failureCount: number;
failureReason: Error | null;
errorUpdateCount: number;
isFetched: boolean;
isFetchedAfterMount: boolean;
isInitialLoading: boolean;
isPaused: boolean;
isRefetching: boolean;
isStale: boolean;
refetch: (options?: import('@tanstack/react-query').RefetchOptions) => Promise<import('@tanstack/react-query').QueryObserverResult<{
message: SearchResult[];
}, Error>>;
fetchStatus: import('@tanstack/react-query').FetchStatus;
promise: Promise<{
message: SearchResult[];
}>;
};