UNPKG

1.13 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6
7var _slate = require('slate');
8
9var _slateReact = require('slate-react');
10
11var _utils = require('../utils');
12
13/**
14 * User is pasting content, insert it as text
15 */
16function onPaste(opts, event, change, editor) {
17 var value = change.value;
18
19 var data = (0, _slateReact.getEventTransfer)(event);
20 var currentCode = (0, _utils.getCurrentCode)(opts, value);
21
22 // Only handle paste when selection is completely a code block
23 var endBlock = value.endBlock;
24
25 if (!currentCode || !currentCode.hasDescendant(endBlock.key)) {
26 return undefined;
27 }
28
29 // Convert to text if needed
30 var text = void 0;
31 if (data.type === 'fragment') {
32 text = data.fragment.getTexts().map(function (t) {
33 return t.text;
34 }).join('\n');
35 } else {
36 text = data.text;
37 }
38
39 // Convert the text to code lines
40 var lines = (0, _utils.deserializeCode)(opts, text).nodes;
41
42 var fragment = _slate.Document.create({ nodes: lines });
43
44 return change.insertFragment(fragment);
45}
46exports.default = onPaste;
\No newline at end of file