@atlaskit/editor-plugin-media
Version:
Media plugin for @atlaskit/editor-core
43 lines • 1.17 kB
JavaScript
import React from 'react';
import ReactDOM from 'react-dom';
import { MediaViewer } from '@atlaskit/media-viewer';
import { isExternalMedia } from '../../ui/toolbar/utils';
const getIdentifier = attrs => {
if (isExternalMedia(attrs)) {
return {
mediaItemType: 'external-image',
dataURI: attrs.url
};
} else {
const {
id,
collection = ''
} = attrs;
return {
id,
mediaItemType: 'file',
collectionName: collection
};
}
};
export const RenderMediaViewer = ({
mediaClientConfig,
onClose,
selectedNodeAttrs,
items = [],
extensions
}) => {
const identifier = getIdentifier(selectedNodeAttrs);
const collectionName = isExternalMedia(selectedNodeAttrs) ? '' : selectedNodeAttrs.collection;
return /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/React.createElement(MediaViewer, {
collectionName: collectionName,
items: items
// Ignored via go/ees005
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
,
mediaClientConfig: mediaClientConfig,
selectedItem: identifier,
onClose: onClose,
extensions: extensions
}), document.body);
};