UNPKG

@atlaskit/editor-plugin-media

Version:

Media plugin for @atlaskit/editor-core

45 lines (44 loc) 2.23 kB
import type { ErrorReportingHandler } from '@atlaskit/editor-common/utils'; import type { MediaFeatureFlags } from '@atlaskit/media-common/mediaFeatureFlags'; import type { MediaClientConfig } from '@atlaskit/media-core'; import type { UploadEndEventPayload, UploadErrorEventPayload, UploadParams, UploadPreviewUpdateEventPayload } from '@atlaskit/media-picker/types'; import type { CustomMediaPicker, MediaState, MobileUploadEndEventPayload } from './types'; export type PickerType = 'clipboard' | 'dropzone' | 'customMediaPicker'; export type ExtendedComponentConfigs = { customMediaPicker: CustomMediaPicker; dropzone: null; clipboard: null; }; export type PickerFacadeConfig = { mediaClientConfig: MediaClientConfig; errorReporter: ErrorReportingHandler; featureFlags?: MediaFeatureFlags; }; export type MediaStateEvent = MediaState; export type MediaStateEventListener = (evt: MediaStateEvent) => void; export type MediaStateEventSubscriber = (listener: MediaStateEventListener) => void; export type NewMediaEvent = (state: MediaState, onStateChanged: MediaStateEventSubscriber, pickerType?: string) => void; export default class PickerFacade { readonly config: PickerFacadeConfig; readonly pickerConfig?: CustomMediaPicker | null | undefined; private picker?; private onDragListeners; private pickerType; private onStartListeners; private eventListeners; private analyticsName; erroredFiles: Set<string>; constructor(pickerType: PickerType, config: PickerFacadeConfig, pickerConfig?: CustomMediaPicker | null | undefined, analyticsName?: string); init(): Promise<PickerFacade>; get type(): PickerType; get mediaPicker(): CustomMediaPicker | undefined; destroy(): void; setUploadParams(params: UploadParams): void; onNewMedia(cb: NewMediaEvent): void; onDrag(cb: (state: 'enter' | 'leave') => any): void; handleUploadPreviewUpdate: (event: UploadPreviewUpdateEventPayload) => void; private subscribeStateChanged; handleUploadError: ({ error, fileId }: UploadErrorEventPayload) => void; handleMobileUploadEnd: (event: MobileUploadEndEventPayload) => void; handleReady: (event: UploadEndEventPayload) => void; }