UNPKG

@atlaskit/editor-common

Version:

A package that contains common classes and components for editor and renderer

57 lines (56 loc) 2.4 kB
import { Component } from 'react'; import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model'; import type { EditorView } from '@atlaskit/editor-prosemirror/view'; import type { EventDispatcher } from '../event-dispatcher'; import { getExtensionModuleNodePrivateProps, getNodeRenderer } from '../extensions'; import type { ExtensionHandlers, ExtensionProvider, ReferenceEntity } from '../extensions'; import type { ProsemirrorGetPosHandler } from '../react-node-view'; import type { EditorAppearance } from '../types'; import type { ExtensionsPluginInjectionAPI } from './types'; export interface Props { editorView: EditorView; node: PMNode; getPos: ProsemirrorGetPosHandler; handleContentDOMRef: (node: HTMLElement | null) => void; extensionHandlers: ExtensionHandlers; extensionProvider?: Promise<ExtensionProvider>; references?: ReferenceEntity[]; editorAppearance?: EditorAppearance; pluginInjectionApi: ExtensionsPluginInjectionAPI; eventDispatcher?: EventDispatcher; showMacroInteractionDesignUpdates?: boolean; } export interface State { extensionProvider?: ExtensionProvider; extensionHandlersFromProvider?: ExtensionHandlers; _privateProps?: { __hideFrame?: boolean; }; activeChildIndex?: number; isNodeHovered?: boolean; } export declare class ExtensionComponent extends Component<Props, State> { private privatePropsParsed; state: State; mounted: boolean; UNSAFE_componentWillMount(): void; componentDidMount(): void; componentDidUpdate(): void; componentWillUnmount(): void; UNSAFE_componentWillReceiveProps(nextProps: Props): void; getNodeRenderer: import("memoize-one").MemoizedFn<typeof getNodeRenderer>; getExtensionModuleNodePrivateProps: import("memoize-one").MemoizedFn<typeof getExtensionModuleNodePrivateProps>; setIsNodeHovered: (isHovered: boolean) => void; render(): JSX.Element | null; private setStateFromPromise; /** * Parses any private nodes once an extension provider is available. * * We do this separately from resolving a node renderer component since the * private props come from extension provider, rather than an extension * handler which only handles `render`/component concerns. */ private parsePrivateNodePropsIfNeeded; private tryExtensionHandler; private handleExtension; }