UNPKG

@atlaskit/editor-plugin-quick-insert

Version:

Quick insert plugin for @atlaskit/editor-core

41 lines (39 loc) 1.42 kB
import { insertSelectedItem } from '@atlaskit/editor-common/insert'; import { pluginKey } from '../plugin-key'; export var openElementBrowserModal = function openElementBrowserModal(_ref) { var tr = _ref.tr; return tr.setMeta(pluginKey, { isElementBrowserModalOpen: true }); }; export var closeElementBrowserModal = function closeElementBrowserModal() { return function (state, dispatch) { if (dispatch) { dispatch(state.tr.setMeta(pluginKey, { isElementBrowserModalOpen: false })); } return true; }; }; export var createInsertItem = function createInsertItem(onInsert) { return insertItem(onInsert); }; // this method was adapted from the typeahead plugin so we respect the API for quick insert items var insertItem = function insertItem(onInsert) { return function (item, source) { return function (state, dispatch) { var insert = function insert(maybeNode) { var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; return insertSelectedItem(maybeNode, opts)(state, state.tr, state.selection.head); }; var tr = item.action(insert, state, source); /** @note There is no transaction when called without a search currently (different insert) */ if (tr && dispatch) { dispatch(tr); } onInsert === null || onInsert === void 0 || onInsert(item); return true; }; }; };