react-query-handler
Version:
A React component to handle query states with TypeScript support
33 lines (32 loc) • 1.17 kB
TypeScript
import React, { ReactNode } from "react";
export interface IQueryResult<T> {
isLoading: boolean;
isError: boolean;
isSuccess: boolean;
data?: T;
error?: Error;
}
export interface IQueryHandlerProps<T> {
query?: IQueryResult<T>;
loadingComponent?: ReactNode;
errorComponent?: ReactNode;
emptyComponent?: ReactNode;
children: ReactNode;
}
export interface IQueryHandlerConfig {
defaultLoadingComponent?: ReactNode;
defaultErrorComponent?: ReactNode;
defaultEmptyComponent?: ReactNode;
}
export declare const QueryHandlerProvider: React.FC<{
config: IQueryHandlerConfig;
children: ReactNode;
}>;
declare const QueryHandler: <T>({ query, loadingComponent, errorComponent, emptyComponent, children, }: IQueryHandlerProps<T>) => string | number | true | Iterable<React.ReactNode> | React.JSX.Element;
export declare const useQueryHandler: <T>(query?: IQueryResult<T>, components?: {
loadingComponent?: ReactNode;
errorComponent?: ReactNode;
emptyComponent?: ReactNode;
}) => ReactNode | T | undefined;
export declare const useQueryHandlerConfig: () => IQueryHandlerConfig;
export default QueryHandler;