diff --git a/src/ckeditor/ContextedPlugin.ts b/src/ckeditor/ContextedPlugin.ts index 9c0882e..acc59ad 100644 --- a/src/ckeditor/ContextedPlugin.ts +++ b/src/ckeditor/ContextedPlugin.ts @@ -95,25 +95,15 @@ export default class ContextedLinkEditing extends Plugin { node?.hasAttribute(attribute) ) ) - - if (Boolean(autocompleteText) || Boolean(autocompleteNode)) { - if (Boolean(autocompleteText) !== Boolean(autocompleteNode)) { - editor.execute('autocomplete') - if (autocompleteNode) { - showAutocomplete = false - editor.model.document.fire('contextedLinkAutocomplete', { - show: showAutocomplete, - }) - } - } else { - showAutocomplete = true - fireAutocompleteEvent(editor, true, autocompleteNode) - } - } - if (!autocompleteNode && showAutocomplete) { - showAutocomplete = false - fireAutocompleteEvent(editor, false) + + if (Boolean(autocompleteText) !== Boolean(autocompleteNode)) { + editor.execute('autocomplete') } + const autocompleteActive = ['contextedLink', 'autocomplete'].some((attribute) => { + return editor.model.document.selection.hasAttribute(attribute) + }) + showAutocomplete = autocompleteActive + fireAutocompleteEvent(editor, showAutocomplete, autocompleteNode) }) } _addContextedKeyHandler() { @@ -191,7 +181,7 @@ function getTextAfterCode(range: any, model: any) { function fireAutocompleteEvent(editor: any, show: boolean, autocompleteNode?: any) { let event: AutocompleteEvent - if (show) { + if (show && autocompleteNode) { const view = editor.editing.view const viewPosition = view.document.selection.focus const viewNode = viewPosition?.parent.parent