UNPKG

@atlaskit/editor-plugin-synced-block

Version:

SyncedBlock plugin for @atlaskit/editor-core

41 lines (40 loc) 2.2 kB
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>;