synapse-storage
Version:
Набор инструментов для управления состоянием и апи-запросами
34 lines (33 loc) • 1.54 kB
TypeScript
import { ComponentType, ReactNode } from 'react';
import { type AwaitableSynapse } from '../../utils';
interface ReactAwaitSynapseOptions {
loadingComponent?: ReactNode;
errorComponent?: (error: Error) => ReactNode;
}
/**
* React-обертка для фреймворк-независимой утилиты ожидания Synapse.
* Добавляет React-специфичные методы поверх createSynapseAwaiter. Принимает
* `SynapseModule`-handle (PromiseLike), Promise готового synapse или сам synapse.
*/
export declare function awaitSynapse<TStore extends AwaitableSynapse>(synapseStorePromise: PromiseLike<TStore> | TStore, options?: ReactAwaitSynapseOptions): {
withSynapseReady: <ComponentProps>(Component: ComponentType<ComponentProps>) => {
(props: ComponentProps): import("react/jsx-runtime").JSX.Element;
displayName: string;
};
useSynapseReady: () => {
isReady: boolean;
isError: boolean;
isPending: boolean;
store: TStore | undefined;
error: Error | null;
};
waitForReady: () => Promise<TStore>;
isReady: () => boolean;
getStoreIfReady: () => TStore | undefined;
onReady: (cb: Parameters<(callback: (store: TStore) => void) => VoidFunction>[0]) => VoidFunction;
onError: (cb: Parameters<(callback: (error: Error) => void) => VoidFunction>[0]) => VoidFunction;
getStatus: () => "error" | "ready" | "pending";
getError: () => Error | null;
destroy: () => void;
};
export {};