@atlaskit/editor-plugin-media
Version:
Media plugin for @atlaskit/editor-core
45 lines (44 loc) • 2.23 kB
TypeScript
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;
}