UNPKG

@equinor/fusion-observable

Version:
33 lines (32 loc) 1.51 kB
import type { Observable, StatefulObservable } from '../types'; type ObservableStateOptions<TType = undefined> = { initial?: TType; teardown?: VoidFunction; }; export type ObservableStateReturnType<TType, TError = unknown> = { value: TType; error: TError | null; complete: boolean; }; /** * use state of observable * @param subject [dep] Observable subject */ export declare function useObservableState<S, TError = unknown>(subject: Observable<S>): ObservableStateReturnType<S | undefined, TError>; /** * use state of observable * @param subject [dep] Observable subject */ export declare function useObservableState<TType, TError = unknown, TInitial extends TType | undefined = undefined>(subject: Observable<TType>, opt: ObservableStateOptions<TInitial>): ObservableStateReturnType<TType | TInitial, TError>; /** === StatefulObservable === */ /** * use state of observable with value property (`FlowSubject`, `BehaviorSubject`) * @param subject [dep] Observable subject */ export declare function useObservableState<TType, TError = unknown>(subject: StatefulObservable<TType>): ObservableStateReturnType<TType, TError>; /** * use state of observable with value property (`FlowSubject`, `BehaviorSubject`) * @param subject [dep] Observable subject */ export declare function useObservableState<TType, TError = unknown>(subject: StatefulObservable<TType>, options: ObservableStateOptions<TType>): ObservableStateReturnType<TType, TError>; export default useObservableState;