UNPKG

@atlaskit/editor-plugin-annotation

Version:

Annotation plugin for @atlaskit/editor-core

52 lines (51 loc) • 2.54 kB
import type { IntlShape } from 'react-intl'; import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics/api'; import type { Position as PopupPosition } from '@atlaskit/editor-common/Popup/utils'; import type { Command } from '@atlaskit/editor-common/types/command'; import type { FloatingToolbarButton } from '@atlaskit/editor-common/types/floating-toolbar'; import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types/next-editor-plugin'; import type { NodeType } from '@atlaskit/editor-prosemirror/model'; import type { SelectionBookmark, EditorState } from '@atlaskit/editor-prosemirror/state'; import type { EditorView } from '@atlaskit/editor-prosemirror/view'; import type { AnnotationPlugin } from '../annotationPluginType'; import { type AnnotationProviders } from '../types'; interface BuildToolbarOptions { _supportedNodes?: string[]; annotationManager?: AnnotationProviders['annotationManager']; api?: ExtractInjectionAPI<AnnotationPlugin>; contentType?: string; createCommentExperience?: AnnotationProviders['createCommentExperience']; getCanAddComments?: () => boolean; intl: IntlShape; isCommentOnMediaOn?: boolean; isToolbarAbove?: boolean; onCommentButtonMount?: () => void; state: EditorState; } type ShouldSuppressFloatingToolbarOptions = { bookmark?: SelectionBookmark; state: EditorState; }; /** * Should suppress toolbars when the user is creating an inline comment * This only applies when the selection range exactly matches the bookmark range * which should be the case immediately after the comment button is clicked * if the user creates a different selection range, the floating toolbar should still be shown * @param root0 * @param root0.state * @param root0.bookmark * @example */ export declare const shouldSuppressFloatingToolbar: ({ state, bookmark, }: ShouldSuppressFloatingToolbarOptions) => boolean; export declare const buildSuppressedToolbar: (state: EditorState) => { items: never[]; nodeType: NodeType[]; title: string; }; export declare const buildToolbar: (editorAnalyticsAPI: EditorAnalyticsAPI | undefined) => ({ state, intl, isToolbarAbove, _supportedNodes, api, createCommentExperience, annotationManager, onCommentButtonMount, getCanAddComments, contentType, }: BuildToolbarOptions) => { items: FloatingToolbarButton<Command>[]; nodeType: NodeType[]; onPositionCalculated: (editorView: EditorView, nextPos: PopupPosition) => PopupPosition; title: string; } | undefined; export {};