UNPKG

@atlaskit/editor-plugin-insert-block

Version:

Insert block plugin for @atlaskit/editor-core

62 lines (61 loc) • 4.46 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.RegisteredInsertMenuContent = void 0; var _react = _interopRequireWildcard(require("react")); var _keys = require("@atlaskit/editor-common/quick-insert/keys"); var _ui = require("@atlaskit/editor-common/ui"); var _withOuterListeners = _interopRequireDefault(require("@atlaskit/editor-common/with-outer-listeners")); var _RegisteredInsertMenu = require("./RegisteredInsertMenu"); 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 EMPTY_COMPONENTS = []; var subscribeToNothing = function subscribeToNothing() { return function () {}; }; var RegisteredInsertMenuContainer = function RegisteredInsertMenuContainer(_ref) { var children = _ref.children; var setOutsideClickTargetRef = (0, _react.useContext)(_ui.PlainOutsideClickTargetRefContext); return /*#__PURE__*/_react.default.createElement("div", { ref: setOutsideClickTargetRef }, children); }; var RegisteredInsertMenuWithListeners = (0, _withOuterListeners.default)(RegisteredInsertMenuContainer); var RegisteredInsertMenuContent = exports.RegisteredInsertMenuContent = function RegisteredInsertMenuContent(_ref2) { var _api$uiControlRegistr2, _api$uiControlRegistr3, _api$quickInsert, _api$analytics, _api$quickInsert2; var api = _ref2.api, editorView = _ref2.editorView, isOffline = _ref2.isOffline, maxHeight = _ref2.maxHeight, onClose = _ref2.onClose, onDismiss = _ref2.onDismiss, onSelect = _ref2.onSelect, target = _ref2.target; var getComponents = (0, _react.useCallback)(function () { var _api$uiControlRegistr; var components = api === null || api === void 0 || (_api$uiControlRegistr = api.uiControlRegistry) === null || _api$uiControlRegistr === void 0 ? void 0 : _api$uiControlRegistr.actions.getComponents(_keys.MENU.key); return components !== null && components !== void 0 && components.length ? components : EMPTY_COMPONENTS; }, [api]); var components = (0, _react.useSyncExternalStore)((_api$uiControlRegistr2 = api === null || api === void 0 || (_api$uiControlRegistr3 = api.uiControlRegistry) === null || _api$uiControlRegistr3 === void 0 ? void 0 : _api$uiControlRegistr3.actions.subscribe) !== null && _api$uiControlRegistr2 !== void 0 ? _api$uiControlRegistr2 : subscribeToNothing, getComponents, getComponents); var onClickOutside = (0, _react.useCallback)(function (event) { if (event.target instanceof Node && target !== null && target !== void 0 && target.contains(event.target)) { return; } onDismiss(); }, [onDismiss, target]); return /*#__PURE__*/_react.default.createElement(RegisteredInsertMenuWithListeners, { handleClickOutside: onClickOutside }, /*#__PURE__*/_react.default.createElement(_RegisteredInsertMenu.RegisteredInsertMenu, { components: components, editorView: editorView, emptyStateHandler: api === null || api === void 0 || (_api$quickInsert = api.quickInsert) === null || _api$quickInsert === void 0 || (_api$quickInsert = _api$quickInsert.sharedState.currentState()) === null || _api$quickInsert === void 0 ? void 0 : _api$quickInsert.emptyStateHandler, fireAnalyticsEvent: api === null || api === void 0 || (_api$analytics = api.analytics) === null || _api$analytics === void 0 ? void 0 : _api$analytics.actions.fireAnalyticsEvent, getItemRank: api === null || api === void 0 || (_api$quickInsert2 = api.quickInsert) === null || _api$quickInsert2 === void 0 || (_api$quickInsert2 = _api$quickInsert2.sharedState.currentState()) === null || _api$quickInsert2 === void 0 ? void 0 : _api$quickInsert2.getItemRank, isOffline: isOffline, maxHeight: maxHeight, onClose: onClose, onSelect: onSelect })); };