UNPKG

@atlaskit/editor-plugin-paste-options-toolbar

Version:

Paste options toolbar for @atlaskit/editor-core

31 lines (30 loc) 1.15 kB
// 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; } };