UNPKG

@atlaskit/editor-plugin-media

Version:

Media plugin for @atlaskit/editor-core

48 lines (47 loc) 2.86 kB
import { jsx } from '@emotion/react'; import type { DispatchAnalyticsEvent } from '@atlaskit/editor-common/analytics'; import type { EventDispatcher } from '@atlaskit/editor-common/event-dispatcher'; import type { PortalProviderAPI } from '@atlaskit/editor-common/portal'; import type { ContextIdentifierProvider, MediaProvider, ProviderFactory } from '@atlaskit/editor-common/provider-factory'; import { SelectionBasedNodeView } from '@atlaskit/editor-common/selection-based-node-view'; import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types'; import type { Node as PMNode } from '@atlaskit/editor-prosemirror/model'; import type { EditorView, NodeView } from '@atlaskit/editor-prosemirror/view'; import type { FileIdentifier } from '@atlaskit/media-client'; import type { MediaClientConfig } from '@atlaskit/media-core/auth'; import type { MediaNextEditorPluginType } from '../mediaPluginType'; import type { getPosHandler, getPosHandler as ProsemirrorGetPosHandler } from '../types'; export interface MediaInlineProps { addPendingTask: (promise: Promise<any>) => void; allowInlineImages?: boolean; contextIdentifierProvider?: Promise<ContextIdentifierProvider>; dispatchAnalyticsEvent?: DispatchAnalyticsEvent; editorViewMode?: boolean; fallbackMediaNameFetcher?: (id: string) => Promise<string>; getPos: ProsemirrorGetPosHandler; handleMediaNodeMount: (node: PMNode, getPos: ProsemirrorGetPosHandler) => void; handleMediaNodeUnmount: (node: PMNode) => void; identifier: FileIdentifier; isSelected: boolean; mediaClientConfig: MediaClientConfig; mediaProvider: Promise<MediaProvider>; node: PMNode; selectedMediaContainerNode: () => PMNode | undefined; view: EditorView; } export declare const handleNewNode: (props: MediaInlineProps) => void; export declare const MediaInline: (props: MediaInlineProps) => jsx.JSX.Element; interface MediaInlineNodeViewProps { api: ExtractInjectionAPI<MediaNextEditorPluginType> | undefined; dispatchAnalyticsEvent?: DispatchAnalyticsEvent; fallbackMediaNameFetcher?: (id: string) => Promise<string>; providerFactory: ProviderFactory; } export declare class MediaInlineNodeView extends SelectionBasedNodeView<MediaInlineNodeViewProps> { createDomRef(): HTMLSpanElement; ignoreMutation(): boolean; viewShouldUpdate(nextNode: PMNode): boolean; render(props: MediaInlineNodeViewProps): jsx.JSX.Element; } export declare const ReactMediaInlineNode: (portalProviderAPI: PortalProviderAPI, eventDispatcher: EventDispatcher, providerFactory: ProviderFactory, api: ExtractInjectionAPI<MediaNextEditorPluginType> | undefined, dispatchAnalyticsEvent?: DispatchAnalyticsEvent, fallbackMediaNameFetcher?: (id: string) => Promise<string>) => (node: PMNode, view: EditorView, getPos: getPosHandler) => NodeView; export {};