UNPKG

@atlaskit/editor-plugin-selection-toolbar

Version:

@atlaskit/editor-plugin-selection-toolbar for @atlaskit/editor-core

62 lines (60 loc) 2.72 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.PinMenuItem = void 0; var _react = _interopRequireDefault(require("react")); var _reactIntl = require("react-intl"); var _messages = require("@atlaskit/editor-common/messages"); var _toolbar = require("@atlaskit/editor-common/toolbar"); var _editorToolbar = require("@atlaskit/editor-toolbar"); var shouldShowPinMenuItem = function shouldShowPinMenuItem(editMode) { return editMode !== 'view'; }; var usePluginState = function usePluginState(_api) { var _useEditorToolbar = (0, _toolbar.useEditorToolbar)(), editorViewMode = _useEditorToolbar.editorViewMode, editorToolbarDockingPreference = _useEditorToolbar.editorToolbarDockingPreference, isOffline = _useEditorToolbar.isOffline; return { editorViewMode: editorViewMode, editorToolbarDockingPreference: editorToolbarDockingPreference, isOffline: isOffline }; }; /** * The menu-item version of pin only appears in selection toolbar - the primary toolbar will have its own component */ var PinMenuItem = exports.PinMenuItem = function PinMenuItem(_ref) { var api = _ref.api, disablePin = _ref.disablePin; var intl = (0, _reactIntl.useIntl)(); var _usePluginState = usePluginState(api), editorViewMode = _usePluginState.editorViewMode, editorToolbarDockingPreference = _usePluginState.editorToolbarDockingPreference, isDisabled = _usePluginState.isOffline; var isToolbarDocked = editorToolbarDockingPreference === 'top'; if (disablePin || !shouldShowPinMenuItem(editorViewMode)) { return null; } var onClick = function onClick() { var _api$userPreferences; if (!api || isDisabled) { return; } api === null || api === void 0 || api.core.actions.execute(api === null || api === void 0 || (_api$userPreferences = api.userPreferences) === null || _api$userPreferences === void 0 ? void 0 : _api$userPreferences.actions.updateUserPreference('toolbarDockingPosition', isToolbarDocked ? 'none' : 'top')); }; var message = intl.formatMessage(isToolbarDocked ? _messages.selectionToolbarMessages.toolbarPositionPinedAtTop : _messages.selectionToolbarMessages.toolbarPositionUnpinnedConcise); return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, { onClick: onClick, isDisabled: isDisabled, elemBefore: isToolbarDocked ? /*#__PURE__*/_react.default.createElement(_editorToolbar.PinnedIcon, { size: "small", label: "" }) : /*#__PURE__*/_react.default.createElement(_editorToolbar.PinIcon, { size: "small", label: "" }) }, message); };