UNPKG

@atlaskit/editor-plugin-breakout

Version:

Breakout plugin for @atlaskit/editor-core

55 lines (53 loc) 1.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.setBreakoutWidth = setBreakoutWidth; var _codeBlock = require("@atlaskit/editor-common/code-block"); var _state = require("@atlaskit/editor-prosemirror/state"); var _isExperimentEnabled = require("@atlaskit/platform-feature-experiments/is-experiment-enabled"); var _singlePlayerExpand = require("../pm-plugins/utils/single-player-expand"); function setBreakoutWidth(width, mode, pos, isLivePage) { return function (state, dispatch) { var node = state.doc.nodeAt(pos); if (!node) { return false; } var tr; if ((0, _isExperimentEnabled.isExperimentEnabled)('platform_editor_lovability_resize_extensions')) { var marks = state.schema.marks.breakout.create({ width: width, mode: mode }).addToSet(node.marks); tr = state.tr.setNodeMarkup(pos, node.type, node.attrs, marks); } else { tr = state.tr.setNodeMarkup(pos, node.type, node.attrs, [state.schema.marks.breakout.create({ width: width, mode: mode })]); } if (node.type === state.schema.nodes.expand) { (0, _singlePlayerExpand.updateExpandedStateNew)({ tr: tr, node: node, pos: pos, isLivePage: isLivePage }); } else if (node.type === state.schema.nodes.codeBlock) { var newNode = tr.doc.nodeAt(pos); var oldNode = node; if (newNode) { (0, _codeBlock.transferCodeBlockWrappedValue)(oldNode, newNode); } } tr.setMeta('scrollIntoView', false); // keep current selection, necessary to not remove NodeSelection for keyboard resizing if (state.selection instanceof _state.NodeSelection && state.selection.node.eq(node)) { tr.setSelection(_state.NodeSelection.create(tr.doc, pos)); } if (dispatch) { dispatch(tr); } return true; }; }