UNPKG

@atlaskit/editor-plugin-paste

Version:

Paste plugin for @atlaskit/editor-core

32 lines 1.34 kB
import { SUPPORTED_LANGUAGES } from '@atlaskit/code/constants'; import { mapSlice } from '@atlaskit/editor-common/utils'; function safelyGetVSCodeLanguage(editorData) { try { var vscodeData = editorData ? JSON.parse(editorData) : undefined; return vscodeData === null || vscodeData === void 0 ? void 0 : vscodeData.mode; } catch (_unused) {} } export function handleVSCodeBlock(_ref) { var _event$clipboardData; var state = _ref.state, slice = _ref.slice, text = _ref.text, event = _ref.event; var vscodeData = event === null || event === void 0 || (_event$clipboardData = event.clipboardData) === null || _event$clipboardData === void 0 ? void 0 : _event$clipboardData.getData('vscode-editor-data'); var language = safelyGetVSCodeLanguage(vscodeData); if (text && language && SUPPORTED_LANGUAGES.some(function (l) { return l.alias[0] === language; })) { var schema = state.schema; slice = mapSlice(slice, function (node) { var _schema$nodes$codeBlo; if (node.type.name === ((_schema$nodes$codeBlo = schema.nodes.codeBlock) === null || _schema$nodes$codeBlo === void 0 ? void 0 : _schema$nodes$codeBlo.name)) { return schema.nodes.codeBlock.createChecked({ language: language }, schema.text(text)); } return node; }); } return slice; }