UNPKG

minh-custom-hooks-release

Version:

My custom hooks for working easier while developing react web app

28 lines (27 loc) 1.44 kB
import { Observable, Subscription } from 'rxjs'; import { EnumSubscriptionState, type ExtractGeneric, type UseTaskObservable } from './@types/useTaskObservable'; export declare const DEFAULT_DATA_VALUE: undefined; export declare const DEFAULT_ERROR_VALUE: undefined; export declare const DEFAULT_SOURCE$_VALUE: null; export declare const DEFAULT_SUBSCRIPTION_VALUE: null; export default function useTaskObservable<TFunc extends (...args: [...(any | [])]) => Promise<any> | Observable<any>, TPreHandlerResult extends ReturnType<Observable<ExtractGeneric<ReturnType<TFunc>>>['pipe']> = Observable<ExtractGeneric<ReturnType<TFunc>>>>({ task, observablePreHandler, onNext, onComplete, onError, onCancel }: UseTaskObservable<TFunc, TPreHandlerResult>): { data: ExtractGeneric<TPreHandlerResult> | undefined; err: any; state: EnumSubscriptionState; subscriptionState: EnumSubscriptionState; isIdle: boolean; isLoading: boolean; isSuccess: boolean; isFailed: boolean; isCanceled: boolean; isSubscriptionIdle: boolean; isSubscriptionLoading: boolean; isSubscriptionDataReceived: boolean; isSubscriptionSuccess: boolean; isSubscriptionFailed: boolean; isSubscriptionCanceled: boolean; run: (...args: Parameters<TFunc>) => void; cancel: () => void; subscription: Subscription | null; createObservable: () => Observable<ExtractGeneric<TPreHandlerResult>> | undefined; };