UNPKG

@atlaskit/editor-plugin-breakout

Version:

Breakout plugin for @atlaskit/editor-core

41 lines (40 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.removeBreakout = removeBreakout; var _codeBlock = require("@atlaskit/editor-common/code-block"); var _state = require("@atlaskit/editor-prosemirror/state"); var _findBreakoutNode = require("../pm-plugins/utils/find-breakout-node"); var _singlePlayerExpand = require("../pm-plugins/utils/single-player-expand"); function removeBreakout(isLivePage) { return function (state, dispatch) { var node = (0, _findBreakoutNode.findSupportedNodeForBreakout)(state.selection); if (!node) { return false; } var marks = node.node.marks.filter(function (m) { return m.type.name !== 'breakout'; }); var tr = state.tr.setNodeMarkup(node.pos, node.node.type, node.node.attrs, marks); if (node.node.type === state.schema.nodes.expand) { (0, _singlePlayerExpand.updateExpandedState)(tr, node, isLivePage); } else if (node.node.type === state.schema.nodes.codeBlock) { var newNode = tr.doc.nodeAt(node.pos); var oldNode = node.node; if (newNode) { (0, _codeBlock.transferCodeBlockWrappedValue)(oldNode, newNode); } } tr.setMeta('scrollIntoView', false); if (state.selection instanceof _state.NodeSelection) { if (state.selection.$anchor.pos === node.pos) { tr.setSelection(_state.NodeSelection.create(tr.doc, node.pos)); } } if (dispatch) { dispatch(tr); } return true; }; }