UNPKG

@atlaskit/editor-plugin-media

Version:

Media plugin for @atlaskit/editor-core

48 lines (47 loc) 1.71 kB
import React from 'react'; import { injectIntl } from 'react-intl-next'; import { useSharedPluginStateWithSelector } from '@atlaskit/editor-common/hooks'; import { toolbarMediaMessages } from '@atlaskit/editor-common/media'; import { TOOLBAR_BUTTON, ToolbarButton } from '@atlaskit/editor-common/ui-menu'; import AttachmentIcon from '@atlaskit/icon/core/attachment'; const onClickMediaButton = showMediaPicker => () => { showMediaPicker(); return true; }; const selector = states => { var _states$mediaState, _states$mediaState2; return { allowsUploads: (_states$mediaState = states.mediaState) === null || _states$mediaState === void 0 ? void 0 : _states$mediaState.allowsUploads, showMediaPicker: (_states$mediaState2 = states.mediaState) === null || _states$mediaState2 === void 0 ? void 0 : _states$mediaState2.showMediaPicker }; }; const ToolbarMedia = ({ isDisabled, isReducedSpacing, intl, api }) => { const { allowsUploads, showMediaPicker } = useSharedPluginStateWithSelector(api, ['media'], selector); if (!allowsUploads || !showMediaPicker) { return null; } const { toolbarMediaTitle } = toolbarMediaMessages; return /*#__PURE__*/React.createElement(ToolbarButton, { buttonId: TOOLBAR_BUTTON.MEDIA, onClick: onClickMediaButton(showMediaPicker), disabled: isDisabled, title: intl.formatMessage(toolbarMediaTitle), spacing: isReducedSpacing ? 'none' : 'default', iconBefore: /*#__PURE__*/React.createElement(AttachmentIcon, { label: intl.formatMessage(toolbarMediaTitle) }) }); }; // eslint-disable-next-line @typescript-eslint/ban-types const _default_1 = injectIntl(ToolbarMedia); export default _default_1;