@atlaskit/editor-nodeview-data-provider
Version:
NodeView data provider for @atlaskit/editor-core plugins
57 lines (56 loc) • 1.77 kB
TypeScript
export declare function useNodeViewDataProvider(): void;
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import type { buildCaches } from './provider-cache';
import type { NodeViewDataProvider } from './index';
export type { buildCaches as __doNotUseThisType };
/**
* Access the value via {@link NodeViewDataProvider} when cached.
*
* It will return the value of the provider if it is already available.
*
* For more information on building caches, see {@link buildCaches}.
*
* @example
* ```ts
* await buildCaches({ adf, oneTickProviders: [emojiNodeViewDataProvider] });
* const value = useNodeViewDataProviderValue({ provider: emojiNodeViewDataProvider, node });
* if (value) {
* return <SinglePassRenderEmoji emoji={value} />;
* }
* return <LegacyMultiPassRenderEmoji node={node} />;
* ```
*/
export declare function useNodeViewDataProviderValue<_NodeViewDataProvider extends NodeViewDataProvider<any, any>>(options: {
provider: _NodeViewDataProvider;
node: PMNode;
}): any;
/**
*
*
* This hook is intended to simplify accessing data via the one tick providers.
*
* ```ts
* const value = useNodeViewDataProviderGet(emojiProvider, emojiNode);
*
* if (value.state === 'loading') {
* return <Loading />;
* }
* if (value.state === 'failed') {
* return <Fallback />;
* }
* return <Emoji properties=(value.result) />
* ```
*/
export declare function useNodeViewDataProviderGet<_NodeViewDataProvider extends NodeViewDataProvider<any, any>>(options: {
provider: _NodeViewDataProvider;
node: PMNode;
}): {
state: "loading";
result: undefined;
} | {
state: "failed";
result: undefined;
} | {
state: "resolved";
result: _NodeViewDataProvider["cache"][string] & ({} | null);
};