UNPKG

@anb98/react-hooks

Version:
40 lines (39 loc) 1.56 kB
declare type DependencyList = ReadonlyArray<any>; export declare type UsePromiseOptions<Params, Result> = { initialData: Result; deps: DependencyList; params: Params; onComplete: (data?: Result, err?: any) => void | Promise<void>; onFail: (err?: any) => void | Promise<void>; onSuccess: (data?: Result) => void | Promise<void>; onUnmount: () => void; }; export declare type State<T> = { isSuccess: boolean; isLoading: boolean; isError: boolean; data: T | null; error: any; status: 'idle' | 'pending' | 'resolved' | 'rejected'; }; /** * This hook executes a Promise when calling the promiseHandler function. * @param promise Promise function to handle * @param options Initial options * @returns [state, promiseHandler, resetState] * @example * ``` const [state, promiseHandler, resetState ] = usePromise(promise, { deps:[], params: [], initialData: {}, onComplete: (data, err) => {}, onFail: (err) => {}, onSuccess: (data) => {}, onUnmount: () => {}, }); *``` * @see https://www.npmjs.com/package/@anb98/react-hooks#usePromise */ declare const usePromise: <PromiseFunction extends (...params: [] | any[]) => Promise<any>>(promise: PromiseFunction, options?: Partial<UsePromiseOptions<Parameters<PromiseFunction>, Awaited<ReturnType<PromiseFunction>>>> | undefined) => readonly [State<Awaited<ReturnType<PromiseFunction>>>, (...promiseParams: [] | Parameters<PromiseFunction>) => Promise<void>, () => void]; export default usePromise;