import React from 'react'; import { ClipboardWrapper } from './ClipboardWrapper'; import { DropzoneWrapper } from './DropzoneWrapper'; import { BrowserWrapper } from './BrowserWrapper'; import { MediaPluginState } from '../../pm-plugins/types'; import { EditorAppearance } from '../../../../types/editor-appearance'; import WithPluginState from '../../../../ui/WithPluginState'; import { focusStateKey } from '../../../../plugins/base/pm-plugins/focus-handler'; type Props = { mediaState: MediaPluginState; editorDomElement: Element; appearance: EditorAppearance; }; type State = { isPopupOpened: boolean; }; export class MediaPickerComponents extends React.Component { static displayName = 'MediaPickerComponents'; state = { isPopupOpened: false, }; componentDidMount() { const { mediaState } = this.props; mediaState.onPopupToggle((isPopupOpened) => { this.setState({ isPopupOpened, }); }); } onBrowseFn = (nativeBrowseFn: () => void) => { const { mediaState } = this.props; mediaState && mediaState.setBrowseFn(nativeBrowseFn); }; render() { const { mediaState, editorDomElement, appearance } = this.props; const { isPopupOpened } = this.state; const featureFlags = mediaState.mediaOptions && mediaState.mediaOptions.featureFlags; return ( { const clipboard = focus ? ( ) : null; return ( <> {clipboard} {!mediaState.shouldUseMediaPickerPopup() && ( )} ); }} /> ); } }