minh-custom-hooks-release
Version:
My custom hooks for working easier while developing react web app
28 lines (27 loc) • 1.44 kB
TypeScript
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;
};