@atlaskit/editor-plugin-table
Version:
Table plugin for the @atlaskit/editor
115 lines (114 loc) • 5.38 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.DragCornerControlsWithSelection = exports.DragCornerControls = void 0;
var _react = _interopRequireWildcard(require("react"));
var _classnames = _interopRequireDefault(require("classnames"));
var _reactIntlNext = require("react-intl-next");
var _hooks = require("@atlaskit/editor-common/hooks");
var _messages = require("@atlaskit/editor-common/messages");
var _utils = require("@atlaskit/editor-tables/utils");
var _commands = require("../../../pm-plugins/commands");
var _types = require("../../../types");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
var DragCornerControlsComponent = function DragCornerControlsComponent(_ref) {
var editorView = _ref.editorView,
isInDanger = _ref.isInDanger,
isResizing = _ref.isResizing,
formatMessage = _ref.intl.formatMessage;
var handleOnClick = function handleOnClick() {
var state = editorView.state,
dispatch = editorView.dispatch;
dispatch((0, _utils.selectTable)(state.tr).setMeta('addToHistory', false));
};
var handleMouseOut = function handleMouseOut() {
var state = editorView.state,
dispatch = editorView.dispatch;
(0, _commands.clearHoverSelection)()(state, dispatch);
};
var isActive = (0, _react.useMemo)(function () {
var selection = editorView.state.selection;
var table = (0, _utils.findTable)(selection);
if (!table) {
return false;
}
return (0, _utils.isTableSelected)(selection);
}, [editorView.state]);
if (isResizing) {
return null;
}
return /*#__PURE__*/_react.default.createElement("button", {
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
className: (0, _classnames.default)(_types.TableCssClassName.DRAG_CORNER_BUTTON, {
active: isActive,
danger: isActive && isInDanger
}),
"aria-label": formatMessage(_messages.tableMessages.cornerControl),
type: "button",
onClick: handleOnClick
// eslint-disable-next-line @atlassian/a11y/mouse-events-have-key-events
,
onMouseOut: handleMouseOut,
contentEditable: false
}, /*#__PURE__*/_react.default.createElement("div", {
className: _types.TableCssClassName.DRAG_CORNER_BUTTON_INNER
}));
};
var DragCornerControlsComponentWithSelection = function DragCornerControlsComponentWithSelection(_ref2) {
var editorView = _ref2.editorView,
isInDanger = _ref2.isInDanger,
isResizing = _ref2.isResizing,
formatMessage = _ref2.intl.formatMessage,
api = _ref2.api;
var _useSharedPluginState = (0, _hooks.useSharedPluginStateWithSelector)(api, ['selection'], function (states) {
var _states$selectionStat;
return {
selection: (_states$selectionStat = states.selectionState) === null || _states$selectionStat === void 0 ? void 0 : _states$selectionStat.selection
};
}),
selection = _useSharedPluginState.selection;
var handleOnClick = function handleOnClick() {
var state = editorView.state,
dispatch = editorView.dispatch;
dispatch((0, _utils.selectTable)(state.tr).setMeta('addToHistory', false));
};
var handleMouseOut = function handleMouseOut() {
var state = editorView.state,
dispatch = editorView.dispatch;
(0, _commands.clearHoverSelection)()(state, dispatch);
};
var isActive = (0, _react.useMemo)(function () {
if (!selection) {
return;
}
var table = (0, _utils.findTable)(selection);
if (!table) {
return false;
}
return (0, _utils.isTableSelected)(selection);
}, [selection]);
if (isResizing) {
return null;
}
return /*#__PURE__*/_react.default.createElement("button", {
// eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
className: (0, _classnames.default)(_types.TableCssClassName.DRAG_CORNER_BUTTON, {
active: isActive,
danger: isActive && isInDanger
}),
"aria-label": formatMessage(_messages.tableMessages.cornerControl),
type: "button",
onClick: handleOnClick
// eslint-disable-next-line @atlassian/a11y/mouse-events-have-key-events
,
onMouseOut: handleMouseOut,
contentEditable: false
}, /*#__PURE__*/_react.default.createElement("div", {
className: _types.TableCssClassName.DRAG_CORNER_BUTTON_INNER
}));
};
var DragCornerControlsWithSelection = exports.DragCornerControlsWithSelection = (0, _reactIntlNext.injectIntl)(DragCornerControlsComponentWithSelection);
var DragCornerControls = exports.DragCornerControls = (0, _reactIntlNext.injectIntl)(DragCornerControlsComponent);