UNPKG

@atlaskit/editor-plugin-submit-editor

Version:

Submit editor plugin for @atlaskit/editor-core

45 lines (44 loc) 1.89 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.createPlugin = createPlugin; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _analytics = require("@atlaskit/editor-common/analytics"); var _keymaps = require("@atlaskit/editor-common/keymaps"); var _utils = require("@atlaskit/editor-common/utils"); var _keymap2 = require("@atlaskit/editor-prosemirror/keymap"); function createPlugin(eventDispatch, api, onSave) { if (!onSave) { return; } return (0, _keymap2.keymap)((0, _defineProperty2.default)({}, "".concat(_keymaps.submit.common), function _(state, _dispatch, editorView) { var _api$media; var mediaState = api === null || api === void 0 || (_api$media = api.media) === null || _api$media === void 0 || (_api$media = _api$media.sharedState) === null || _api$media === void 0 ? void 0 : _api$media.currentState(); if (mediaState && mediaState.waitForMediaUpload && !mediaState.allUploadsFinished) { return true; } if (!editorView) { return false; } eventDispatch(_utils.analyticsEventKey, analyticsPayload(state)); onSave(editorView); return true; })); } var analyticsPayload = function analyticsPayload(state) { return { payload: { action: _analytics.ACTION.STOPPED, actionSubject: _analytics.ACTION_SUBJECT.EDITOR, actionSubjectId: _analytics.ACTION_SUBJECT_ID.SAVE, attributes: { inputMethod: _analytics.INPUT_METHOD.SHORTCUT, documentSize: state.doc.nodeSize // TODO: ED-26961 - add individual node counts - tables, headings, lists, mediaSingles, mediaGroups, mediaCards, panels, extensions, decisions, action, codeBlocks }, eventType: _analytics.EVENT_TYPE.UI } }; };