UNPKG

@atlaskit/editor-plugin-submit-editor

Version:

Submit editor plugin for @atlaskit/editor-core

38 lines 1.63 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; import { ACTION, ACTION_SUBJECT, ACTION_SUBJECT_ID, EVENT_TYPE, INPUT_METHOD } from '@atlaskit/editor-common/analytics'; import { submit } from '@atlaskit/editor-common/keymaps'; import { analyticsEventKey } from '@atlaskit/editor-common/utils'; import { keymap } from '@atlaskit/editor-prosemirror/keymap'; export function createPlugin(eventDispatch, api, onSave) { if (!onSave) { return; } return keymap(_defineProperty({}, "".concat(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(analyticsEventKey, analyticsPayload(state)); onSave(editorView); return true; })); } var analyticsPayload = function analyticsPayload(state) { return { payload: { action: ACTION.STOPPED, actionSubject: ACTION_SUBJECT.EDITOR, actionSubjectId: ACTION_SUBJECT_ID.SAVE, attributes: { inputMethod: 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: EVENT_TYPE.UI } }; };