@atlaskit/editor-plugin-synced-block
Version:
SyncedBlock plugin for @atlaskit/editor-core
41 lines (40 loc) • 2.2 kB
TypeScript
import React from 'react';
import type { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher';
import type { PortalProviderAPI } from '@atlaskit/editor-common/portal';
import ReactNodeView from '@atlaskit/editor-common/react-node-view';
import type { getPosHandler } from '@atlaskit/editor-common/react-node-view';
import type { ReactComponentProps } from '@atlaskit/editor-common/react-node-view';
import type { ExtractInjectionAPI, getPosHandlerNode, PMPluginFactoryParams } from '@atlaskit/editor-common/types';
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import type { EditorView, Decoration, DecorationSource } from '@atlaskit/editor-prosemirror/view';
import type { SyncBlockStoreManager } from '@atlaskit/editor-synced-block-provider';
import type { SyncedBlockPlugin, SyncedBlockPluginOptions } from '../syncedBlockPluginType';
export interface SyncBlockNodeViewProps extends ReactComponentProps {
api?: ExtractInjectionAPI<SyncedBlockPlugin>;
eventDispatcher: EventDispatcher;
getPos: getPosHandlerNode;
isNodeNested?: boolean;
node: PMNode;
options: SyncedBlockPluginOptions | undefined;
portalProviderAPI: PortalProviderAPI;
syncBlockStore?: SyncBlockStoreManager;
view: EditorView;
}
export declare class SyncBlock extends ReactNodeView<SyncBlockNodeViewProps> {
private options;
private api?;
private syncBlockStore?;
constructor(props: SyncBlockNodeViewProps);
unsubscribe: (() => void) | undefined;
createDomRef(): HTMLElement;
validUpdate(currentNode: PMNode, newNode: PMNode): boolean;
update(node: PMNode, decorations: ReadonlyArray<Decoration>, innerDecorations?: DecorationSource): boolean;
render({ getPos }: SyncBlockNodeViewProps): React.JSX.Element | null;
destroy(): void;
}
export interface SyncBlockNodeViewProperties {
api?: ExtractInjectionAPI<SyncedBlockPlugin>;
options: SyncedBlockPluginOptions | undefined;
pmPluginFactoryParams: PMPluginFactoryParams;
}
export declare const syncBlockNodeView: (props: SyncBlockNodeViewProperties) => (node: PMNode, view: EditorView, getPos: getPosHandler) => ReactNodeView<SyncBlockNodeViewProps>;