UNPKG

@alextewpin/use-promise

Version:

Hook for declarative promises. Useful for fetching data, sending forms and doing other async stuff right in component. Tiny, easy to use, TypeScript definitions included. Inspired by outstanding [react-async](https://www.npmjs.com/package/react-async) lib

17 lines (16 loc) 692 B
export interface PromiseConfig<Data, Payload extends unknown[]> { promiseThunk(...payload: Payload): Promise<Data>; onResolve?(data: Data, ...payload: Payload): void; onReject?(error: Error, ...payload: Payload): void; } interface InternalState<Data, Payload> { data?: Data; error?: Error; payload?: Payload; isPending: boolean; } export interface PromiseState<Data, Payload extends unknown[]> extends InternalState<Data, Payload> { run: (...payload: Payload) => void; } declare const usePromise: <Data, Payload extends unknown[]>({ promiseThunk, onResolve, onReject, }: PromiseConfig<Data, Payload>) => PromiseState<Data, Payload>; export default usePromise;