UNPKG

@atlaskit/editor-plugin-code-block-advanced

Version:

CodeBlockAdvanced plugin for @atlaskit/editor-core

30 lines (26 loc) 848 B
import type { Extension } from '@codemirror/state'; import { EditorView as CodeMirror } from '@codemirror/view'; import type { ExtractInjectionAPI } from '@atlaskit/editor-common/types'; import type { CodeBlockAdvancedPlugin } from '../../codeBlockAdvancedPluginType'; /** * Hides selection marker decoration when focused on codemirror editor and re-enables on blur * * @param api * @returns CodeMirror Extension * @example */ export const manageSelectionMarker = ( api: ExtractInjectionAPI<CodeBlockAdvancedPlugin> | undefined, ): Extension => { let decoHide: (() => void) | undefined; return CodeMirror.focusChangeEffect.of((_state, focusing) => { if (focusing) { api?.selectionMarker?.actions.queueHideDecoration((hideDecoration) => { decoHide = hideDecoration; }); } else { decoHide?.(); } return null; }); };