UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

41 lines 1.49 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var analytics_1 = require("../../../analytics"); var prosemirror_1 = require("../../../prosemirror"); function createPlugin(onSave) { if (!onSave) { return; } return prosemirror_1.keymap({ 'Enter': function (state, dispatch, editorView) { if (canSaveOnEnter(editorView)) { analytics_1.analyticsService.trackEvent('atlassian.editor.stop.submit'); onSave(editorView); return true; } return false; } }); } exports.createPlugin = createPlugin; function canSaveOnEnter(editorView) { var $cursor = editorView.state.selection.$cursor; var _a = editorView.state.schema.nodes, decisionItem = _a.decisionItem, paragraph = _a.paragraph, taskItem = _a.taskItem; return !$cursor || ($cursor.parent.type === paragraph && $cursor.depth === 1) || ($cursor.parent.type === decisionItem && !isEmptyAtCursor($cursor)) || ($cursor.parent.type === taskItem && !isEmptyAtCursor($cursor)); } function isEmptyAtCursor($cursor) { var content = $cursor.parent.content; return !(content && content.size); } var saveOnEnterPlugin = { pmPlugins: function () { return [ { rank: 9700, plugin: function (schema, props) { return createPlugin(props.onSave); } } ]; } }; exports.default = saveOnEnterPlugin; //# sourceMappingURL=index.js.map