UNPKG

@atlaskit/editor-plugin-loom

Version:

Loom plugin for @atlaskit/editor-core

51 lines (50 loc) 2.38 kB
import type { EditorAnalyticsAPI } from '@atlaskit/editor-common/analytics'; import type { INPUT_METHOD } from '@atlaskit/editor-common/analytics'; import type { EditorCommand, NextEditorPlugin, OptionalPlugin } from '@atlaskit/editor-common/types'; import type { AnalyticsPlugin } from '@atlaskit/editor-plugin-analytics'; import type { ConnectivityPlugin } from '@atlaskit/editor-plugin-connectivity'; import type { EditorViewModePlugin } from '@atlaskit/editor-plugin-editor-viewmode'; import type { HyperlinkPlugin } from '@atlaskit/editor-plugin-hyperlink'; import type { PrimaryToolbarPlugin } from '@atlaskit/editor-plugin-primary-toolbar'; import type { QuickInsertPlugin } from '@atlaskit/editor-plugin-quick-insert'; import type { ToolbarPlugin } from '@atlaskit/editor-plugin-toolbar'; import type { WidthPlugin } from '@atlaskit/editor-plugin-width'; import type { LoomPluginState } from './pm-plugins/main'; import type { LoomPluginOptions, LoomProviderOptions, PositionType, VideoMeta } from './types'; export type LoomPlugin = NextEditorPlugin<'loom', { actions: { /** * Given loom provider, initialise loom SDK * @returns error message if initialisation failed */ initLoom: ({ loomProvider, }: { loomProvider: LoomProviderOptions; }) => Promise<{ error?: string; }>; /** * Insert loom into the document. * * @param video Video metadata (`sharedUrl` and `title`) * @param positionType {'start' | 'end' | 'current'} Where you want to insert the loom * @returns {boolean} If the loom was successfully inserted */ insertLoom: (video: VideoMeta, positionType: PositionType) => boolean; recordVideo: ({ inputMethod, editorAnalyticsAPI, }: { editorAnalyticsAPI: EditorAnalyticsAPI | undefined; inputMethod: INPUT_METHOD; }) => EditorCommand; }; dependencies: [ OptionalPlugin<AnalyticsPlugin>, WidthPlugin, HyperlinkPlugin, OptionalPlugin<PrimaryToolbarPlugin>, OptionalPlugin<QuickInsertPlugin>, OptionalPlugin<ConnectivityPlugin>, OptionalPlugin<ToolbarPlugin>, OptionalPlugin<EditorViewModePlugin> ]; pluginConfiguration: LoomPluginOptions; sharedState: LoomPluginState | undefined; }>;