@atlaskit/editor-plugin-paste-options-toolbar
Version:
Paste options toolbar for @atlaskit/editor-core
31 lines (30 loc) • 1.15 kB
JavaScript
// Remove this file when experiment 'platform_editor_paste_actions_menu_v2' is cleaned up.
import { expVal } from '@atlaskit/tmp-editor-statsig/expVal';
import { hasTableNode } from '../utils/paste-menu-rules/hasTableNode';
import { isNotProse } from '../utils/paste-menu-rules/isNotProse';
export const firePasteActionsMenuV2ExperimentExposure = (contentLength, state, pasteStartPos, pasteEndPos, pastedText, pastedSlice) => {
if (contentLength < 100 || !pasteStartPos || !pasteEndPos || !pastedText) {
return;
}
if (isNotProse(pastedText)) {
return;
}
if (hasTableNode(pastedSlice)) {
return;
}
try {
const $pos = state.doc.resolve(pasteStartPos);
const pasteAncestorNodeNames = [];
for (let depth = $pos.depth; depth > 0; depth--) {
if (pasteEndPos <= $pos.end(depth)) {
pasteAncestorNodeNames.push($pos.node(depth).type.name);
}
}
const isInExcludedNode = pasteAncestorNodeNames.some(name => ['codeBlock', 'heading'].includes(name));
if (!isInExcludedNode) {
expVal('platform_editor_paste_actions_menu_v2', 'variant', 'control');
}
} catch {
return;
}
};