@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
57 lines (56 loc) • 2.4 kB
TypeScript
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;
}