UNPKG

@atlaskit/editor-plugin-media

Version:

Media plugin for @atlaskit/editor-core

54 lines (52 loc) • 2.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _reactIntl = require("react-intl"); var _toolbarButton = require("@atlaskit/editor-common/analytics/types/toolbar-button"); var _toolbarMedia = require("@atlaskit/editor-common/media/toolbarMedia"); var _ToolbarButton = _interopRequireDefault(require("@atlaskit/editor-common/ui-menu/ToolbarButton")); var _useSharedPluginStateWithSelector = require("@atlaskit/editor-common/useSharedPluginStateWithSelector"); var _attachment = _interopRequireDefault(require("@atlaskit/icon/core/attachment")); var onClickMediaButton = function onClickMediaButton(showMediaPicker) { return function () { showMediaPicker(); return true; }; }; var selector = function 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 }; }; var ToolbarMedia = function ToolbarMedia(_ref) { var isDisabled = _ref.isDisabled, isReducedSpacing = _ref.isReducedSpacing, intl = _ref.intl, api = _ref.api; var _useSharedPluginState = (0, _useSharedPluginStateWithSelector.useSharedPluginStateWithSelector)(api, ['media'], selector), allowsUploads = _useSharedPluginState.allowsUploads, showMediaPicker = _useSharedPluginState.showMediaPicker; if (!allowsUploads || !showMediaPicker) { return null; } var toolbarMediaTitle = _toolbarMedia.toolbarMediaMessages.toolbarMediaTitle; return /*#__PURE__*/_react.default.createElement(_ToolbarButton.default, { buttonId: _toolbarButton.TOOLBAR_ACTION_SUBJECT_ID.MEDIA, onClick: onClickMediaButton(showMediaPicker), disabled: isDisabled, title: intl.formatMessage(toolbarMediaTitle), spacing: isReducedSpacing ? 'none' : 'default', iconBefore: /*#__PURE__*/_react.default.createElement(_attachment.default, { label: intl.formatMessage(toolbarMediaTitle) }) }); }; // eslint-disable-next-line @typescript-eslint/no-restricted-types var _default_1 = (0, _reactIntl.injectIntl)(ToolbarMedia); var _default = exports.default = _default_1;