Skip to content

Commit 2dc1098

Browse files
committed
refactor(src): abstract out clause paste functionality - I88
Signed-off-by: irmerk <jolenelanglinais@gmail.com>
1 parent ee101a6 commit 2dc1098

File tree

1 file changed

+9
-32
lines changed

1 file changed

+9
-32
lines changed

src/SlateAsInputEditor/index.js

Lines changed: 9 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -367,39 +367,16 @@ const SlateAsInputEditor = React.forwardRef((props, ref) => {
367367
const onPaste = (event, editor, next) => {
368368
if (isEditable(editor, 'paste')) {
369369
const transfer = getEventTransfer(event);
370-
const mutableFragment = transfer.fragment.asMutable();
371-
const mutableNodes = mutableFragment.nodes.asMutable();
372-
373-
const isHeadingClause = node => node.type === 'clause';
374-
mutableNodes.map((node) => {
375-
if (isHeadingClause(node)) {
376-
const mutableNode = node.asMutable();
377-
const mutableDataMap = mutableNode.data.asMutable();
378-
const mutableAttributesMap = mutableDataMap.get('attributes');
379-
380-
mutableAttributesMap.clauseid = uuidv4(); // unique identifier for a clause instance
381-
382-
mutableDataMap.set('attributes', mutableAttributesMap);
383-
mutableNode.data = mutableDataMap.asImmutable();
384-
return mutableNode;
385-
}
386-
return node;
387-
});
388-
mutableFragment.nodes = mutableNodes.asImmutable();
389-
transfer.fragment = mutableFragment.asImmutable();
390-
editor.insertFragment(transfer.fragment);
391-
392-
if (transfer.type !== 'html') return undefined;
393-
394-
const pluginManager = new PluginManager(props.plugins);
395-
const fromHtml = new FromHTML(pluginManager);
396-
// @ts-ignore
397-
const { document } = fromHtml.convert(editor, transfer.html);
398-
editor.insertFragment(document);
399-
return undefined;
370+
if (transfer.type === 'html') {
371+
const pluginManager = new PluginManager(props.plugins);
372+
const fromHtml = new FromHTML(pluginManager);
373+
// @ts-ignore
374+
const { document } = fromHtml.convert(editor, transfer.html);
375+
editor.insertFragment(document);
376+
return;
377+
}
400378
}
401-
402-
return false;
379+
return next();
403380
};
404381

405382
/**

0 commit comments

Comments
 (0)