UNPKG

@atlaskit/editor-plugin-media

Version:

Media plugin for @atlaskit/editor-core

40 lines 2.04 kB
import { mediaInlineImagesEnabled } from '@atlaskit/editor-common/media-inline'; import { isInEmptyLine } from '@atlaskit/editor-common/utils'; import { hasParentNodeOfType } from '@atlaskit/editor-prosemirror/utils'; import { getMediaFeatureFlag } from '@atlaskit/media-common'; import { fg } from '@atlaskit/platform-feature-flags'; import { canInsertMediaInline } from '../utils/media-files'; import { isMediaSingle } from '../utils/media-single'; import { isImage, isVideo } from './is-type'; import { isInsidePotentialEmptyParagraph } from './media-common'; export const isInSupportedInlineImageParent = state => { return hasParentNodeOfType([state.schema.nodes.listItem])(state.selection); }; export const getMediaNodeInsertionType = (state, mediaOptions, fileMimeType) => { if (isImage(fileMimeType) && fg('platform_editor_media_block_default')) { if (isMediaSingle(state.schema, fileMimeType)) { return 'block'; } return 'group'; } const canInsertInlineNode = getMediaFeatureFlag('mediaInline', mediaOptions === null || mediaOptions === void 0 ? void 0 : mediaOptions.featureFlags) && !isInEmptyLine(state) && (!isInsidePotentialEmptyParagraph(state) || isInSupportedInlineImageParent(state)) && canInsertMediaInline(state); if (fg('platform_editor_remove_media_inline_feature_flag')) { if (mediaOptions !== null && mediaOptions !== void 0 && mediaOptions.allowMediaInlineImages) { if (canInsertInlineNode && !isVideo(fileMimeType)) { return 'inline'; } } } else { if (mediaInlineImagesEnabled(getMediaFeatureFlag('mediaInline', mediaOptions === null || mediaOptions === void 0 ? void 0 : mediaOptions.featureFlags), mediaOptions === null || mediaOptions === void 0 ? void 0 : mediaOptions.allowMediaInlineImages)) { if (canInsertInlineNode && !isVideo(fileMimeType)) { return 'inline'; } } } if (isMediaSingle(state.schema, fileMimeType)) { return 'block'; } else if (canInsertInlineNode) { return 'inline'; } return 'group'; };