insert new link with autocomplete

This commit is contained in:
2023-05-15 23:16:19 +02:00
parent 5240d61b35
commit c9c460b36c
4 changed files with 55 additions and 5 deletions

View File

@@ -64,6 +64,7 @@ export default defineComponent({
'input',
'update:modelValue',
'click',
'editorReady',
'contextedLinkAutocomplete',
'contextedKeypress',
],
@@ -182,6 +183,7 @@ export default defineComponent({
methods: {
setUpEditorEvents() {
const editor = this.instance!
this.$emit('editorReady', editor)
// Use the leading edge so the first event in the series is emitted immediately.
// Failing to do so leads to race conditions, for instance, when the component modelValue

View File

@@ -126,12 +126,16 @@ export default class ContextedLinkEditing extends Plugin {
)
if (selectionInContextedLink && keyCodes.includes(keyCode)) {
if (selection.hasAttribute('contextedLink')) {
const autocompleteNode = editor.model.document.selection.focus
?.textNode as any
const autocompleteNode = [
selection.focus?.nodeBefore,
selection.focus?.textNode,
selection.focus?.nodeAfter,
].find((node) => Boolean(node))
fireAutocompleteEvent(editor, true, autocompleteNode)
}
this.editor.model.document.fire('contextedKeypress', { keyCode })
data.preventDefault(evt.stop())
data.preventDefault()
evt.stop()
}
},
{ priority: 'highest' }