@atlaskit/editor-plugin-paste
Version:
Paste plugin for @atlaskit/editor-core
22 lines • 749 B
JavaScript
import { getDefaultCodeBlockAttrs, getInsertedCodeBlocksInTransaction } from '@atlaskit/editor-common/code-block';
const isCodeBlockWithUnsetWrap = node => node.attrs.wrap === null;
const patchInsertedCodeBlocks = (tr, insertedCodeBlocks) => {
insertedCodeBlocks.forEach(({
node,
pos
}) => {
tr.setNodeMarkup(pos, undefined, getDefaultCodeBlockAttrs(node.attrs), node.marks);
});
};
export const normalizePastedCodeBlockAttrs = (tr, codeBlockType) => {
if (!codeBlockType) {
return tr;
}
const insertedCodeBlocks = getInsertedCodeBlocksInTransaction(tr, codeBlockType, {
filter: isCodeBlockWithUnsetWrap
});
if (insertedCodeBlocks.length) {
patchInsertedCodeBlocks(tr, insertedCodeBlocks);
}
return tr;
};