@atlaskit/editor-common
Version:
A package that contains common classes and components for editor and renderer
38 lines (37 loc) • 1.7 kB
TypeScript
/**
* @jsxRuntime classic
* @jsx jsx
*/
import React from 'react';
import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model';
import type { Decoration, EditorView, NodeView } from '@atlaskit/editor-prosemirror/view';
import type { PMPluginFactoryParams } from '../types';
export type InlineNodeViewComponentProps = {
getPos: () => GetPosReturn;
node: PMNode;
view: EditorView;
};
type InlineNodeViewComponent<ExtraComponentProps> = React.ComponentType<React.PropsWithChildren<InlineNodeViewComponentProps & ExtraComponentProps>>;
export type CreateNodeViewOptions<ExtraComponentProps> = {
Component: InlineNodeViewComponent<ExtraComponentProps>;
extraComponentProps: ExtraComponentProps;
extraNodeViewProps?: Pick<NodeView, 'stopEvent'>;
nodeViewParams: NodeViewParams;
pmPluginFactoryParams: PMPluginFactoryParams;
};
export declare const inlineNodeViewClassname = "inlineNodeView";
type NodeViewProducer = (node: PMNode, view: EditorView, getPos: () => GetPosReturn, decorations: readonly Decoration[]) => NodeView;
type GetPosReturn = number | undefined;
type NodeViewParams = {
decorations: Parameters<NodeViewProducer>[3];
getPos: () => GetPosReturn;
node: Parameters<NodeViewProducer>[0];
view: Parameters<NodeViewProducer>[1];
};
export declare function getInlineNodeViewProducer<ExtraComponentProps>({ pmPluginFactoryParams, Component, extraComponentProps, extraNodeViewProps, }: {
Component: InlineNodeViewComponent<ExtraComponentProps>;
extraComponentProps?: ExtraComponentProps;
extraNodeViewProps?: Pick<NodeView, 'stopEvent'>;
pmPluginFactoryParams: PMPluginFactoryParams;
}): NodeViewProducer;
export {};