| 12345678910111213141516171819202122232425262728293031323334353637383940 |
- import { ReactNode } from 'react';
- import { Observable } from 'rxjs';
- /**
- * unwrap an observable value, return it to the component for rendering, and
- * trigger re-render when value changes
- *
- * **IMPORTANT**. Parent and child components better not subscribe to the same
- * observable, otherwise unnecessary re-render would be triggered. Instead, the
- * top-most component should subscribe and pass value of the observable to
- * its offspring, by props or context. Please consider using `useDependencyContext` and
- * `useDependencyContextValue` in this case.
- *
- * @deprecated Please use `useObservable` instead.
- */
- export declare function useDependencyValue<T>(depValue$: Observable<T>, defaultValue?: T): T | undefined;
- type ObservableOrFn<T> = Observable<T> | (() => Observable<T>);
- type Nullable<T> = T | undefined | null;
- export declare function useObservable<T>(observable: Nullable<ObservableOrFn<T>>): T | undefined;
- export declare function useObservable<T>(observable: Nullable<ObservableOrFn<T>>, defaultValue: T): T;
- export declare function useObservable<T>(observable: Nullable<ObservableOrFn<T>>, defaultValue: undefined, shouldHaveSyncValue: true, deps?: any[]): T;
- export declare function useObservable<T>(observable: Nullable<ObservableOrFn<T>>, defaultValue?: undefined, shouldHaveSyncValue?: true, deps?: any[]): T | undefined;
- /**
- * subscribe to a signal that emits whenever data updates and re-render
- *
- * @param update$ a signal that the data the functional component depends has updated
- */
- export declare function useUpdateBinder(update$: Observable<void>): void;
- /**
- * subscribe to an observable value from a service, creating a context for it so
- * it child component won't have to subscribe again and cause unnecessary
- */
- export declare function useDependencyContext<T>(depValue$: Observable<T>, defaultValue?: T): {
- Provider: (props: {
- initialState?: T;
- children: ReactNode;
- }) => JSX.Element;
- value: T | undefined;
- };
- export declare function useDependencyContextValue<T>(depValue$: Observable<T>): T | undefined;
- export {};
|