UNPKG

@atlaskit/editor-plugin-floating-toolbar

Version:

Floating toolbar plugin for @atlaskit/editor-core

28 lines (27 loc) • 1.22 kB
import { getNodeCopiedAnalyticsPayload } from '@atlaskit/editor-common/clipboard'; import { copyDomNode, getSelectedNodeOrNodeParentByNodeType, toDOM } from '@atlaskit/editor-common/copy-button'; export var copyNode = function copyNode(nodeType, editorAnalyticsApi, inputMethod) { return function (_ref) { var tr = _ref.tr; // const { tr, schema } = state; // This command should only be triggered by the Copy button in the floating toolbar // which is only visible when selection is inside the target node var contentNodeWithPos = getSelectedNodeOrNodeParentByNodeType({ nodeType: nodeType, selection: tr.selection }); if (!contentNodeWithPos) { return tr; } var schema = tr.doc.type.schema; var copyToClipboardTr = tr; var domNode = toDOM(contentNodeWithPos.node, schema); copyDomNode(domNode, contentNodeWithPos.node.type, tr.selection); if (editorAnalyticsApi) { var analyticsPayload = getNodeCopiedAnalyticsPayload(contentNodeWithPos.node, inputMethod); editorAnalyticsApi.attachAnalyticsEvent(analyticsPayload)(copyToClipboardTr); } copyToClipboardTr.setMeta('scrollIntoView', false); return copyToClipboardTr; }; };