@atlaskit/editor-plugin-alignment
Version:
Alignment plugin for @atlaskit/editor-core
49 lines (48 loc) • 2.2 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.AlignmentMenuItem = void 0;
var _react = _interopRequireDefault(require("react"));
var _reactIntl = require("react-intl");
var _hooks = require("@atlaskit/editor-common/hooks");
var _keymaps = require("@atlaskit/editor-common/keymaps");
var _toolbar = require("@atlaskit/editor-common/toolbar");
var _editorToolbar = require("@atlaskit/editor-toolbar");
var _editorCommands = require("../../editor-commands");
var AlignmentMenuItem = exports.AlignmentMenuItem = function AlignmentMenuItem(_ref) {
var _ref$option = _ref.option,
label = _ref$option.label,
Icon = _ref$option.icon,
keymap = _ref$option.keymap,
api = _ref.api,
alignment = _ref.alignment,
parents = _ref.parents;
var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api, ['alignment'], function (states) {
var _states$alignmentStat;
return {
align: (_states$alignmentStat = states.alignmentState) === null || _states$alignmentStat === void 0 ? void 0 : _states$alignmentStat.align
};
}),
align = _useSharedPluginState.align;
var _useIntl = (0, _reactIntl.useIntl)(),
formatMessage = _useIntl.formatMessage;
var shortcut = (0, _keymaps.tooltip)(keymap);
return /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarDropdownItem, {
isSelected: align === alignment,
elemBefore: /*#__PURE__*/_react.default.createElement(Icon, {
size: "small",
label: ""
}),
elemAfter: shortcut && /*#__PURE__*/_react.default.createElement(_editorToolbar.ToolbarKeyboardShortcutHint, {
shortcut: shortcut
}),
ariaKeyshortcuts: (0, _keymaps.getAriaKeyshortcuts)(keymap)
// eslint-disable-next-line @atlassian/perf-linting/no-unstable-inline-props -- Ignored via go/ees017 (to be fixed)
,
onClick: function onClick() {
api === null || api === void 0 || api.core.actions.execute((0, _editorCommands.changeAlignmentTr)(api, alignment, (0, _toolbar.getInputMethodFromParentKeys)(parents)));
}
}, formatMessage(label));
};