UNPKG

@atlaskit/editor-plugin-media

Version:

Media plugin for @atlaskit/editor-core

82 lines (81 loc) 2.44 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; import React from 'react'; import { useSharedPluginState } from '@atlaskit/editor-common/hooks'; import { BrowserWrapper } from './BrowserWrapper'; import { ClipboardWrapper } from './ClipboardWrapper'; import { DropzoneWrapper } from './DropzoneWrapper'; const MediaPicker = ({ api, isPopupOpened, appearance, mediaState, onBrowseFn, editorDomElement }) => { const { focusState } = useSharedPluginState(api, ['focus']); const featureFlags = mediaState.mediaOptions && mediaState.mediaOptions.featureFlags; const container = editorDomElement; const clipboard = focusState !== null && focusState !== void 0 && focusState.hasFocus ? /*#__PURE__*/React.createElement(ClipboardWrapper, { mediaState: mediaState, featureFlags: featureFlags, container: container }) : null; return /*#__PURE__*/React.createElement(React.Fragment, null, clipboard, /*#__PURE__*/React.createElement(DropzoneWrapper, { mediaState: mediaState, isActive: !isPopupOpened, featureFlags: featureFlags, editorDomElement: editorDomElement, appearance: appearance }), /*#__PURE__*/React.createElement(BrowserWrapper, { onBrowseFn: onBrowseFn, mediaState: mediaState, featureFlags: featureFlags })); }; // eslint-disable-next-line @repo/internal/react/no-class-components export class MediaPickerComponents extends React.Component { constructor(...args) { super(...args); _defineProperty(this, "state", { isPopupOpened: false }); _defineProperty(this, "onBrowseFn", nativeBrowseFn => { const { mediaState } = this.props; mediaState && mediaState.setBrowseFn(nativeBrowseFn); }); } componentDidMount() { const { mediaState } = this.props; mediaState.onPopupToggle(isPopupOpened => { this.setState({ isPopupOpened }); }); } render() { const { api, mediaState, editorDomElement, appearance } = this.props; const { isPopupOpened } = this.state; return /*#__PURE__*/React.createElement(MediaPicker, { mediaState: mediaState, editorDomElement: editorDomElement, appearance: appearance, isPopupOpened: isPopupOpened, onBrowseFn: this.onBrowseFn, api: api }); } } _defineProperty(MediaPickerComponents, "displayName", 'MediaPickerComponents');