refactoring

This commit is contained in:
Philipp Kühn 2021-01-19 12:50:09 +01:00 committed by Hans Pagel
parent 19c3599605
commit 008fd9b519
2 changed files with 58 additions and 39 deletions

View File

@ -31,6 +31,7 @@ export default {
Paragraph,
Text,
Mention.configure({
suggestionOptions: {
items: query => {
return ['Hans', 'Philipp', 'Kris'].filter(item => item.startsWith(query))
},
@ -71,6 +72,7 @@ export default {
},
}
},
},
}),
],
content: `

View File

@ -1,14 +1,22 @@
import { Node } from '@tiptap/core'
import Suggestion, { SuggestionOptions } from '@tiptap/suggestion'
export type MentionOptions = Omit<SuggestionOptions, 'editor'>
export type MentionOptions = {
HTMLAttributes: {
[key: string]: any,
},
suggestionOptions: Omit<SuggestionOptions, 'editor'>,
}
export const Mention = Node.create({
name: 'mention',
defaultOptions: <MentionOptions>{
HTMLAttributes: {},
suggestionOptions: {
char: '@',
},
},
group: 'inline',
@ -27,6 +35,15 @@ export const Mention = Node.create({
id: element.getAttribute('data-mention'),
}
},
renderHTML: attributes => {
if (!attributes.id) {
return {}
}
return {
'data-mention': attributes.id,
}
},
},
}
},
@ -47,7 +64,7 @@ export const Mention = Node.create({
return [
Suggestion({
editor: this.editor,
...this.options,
...this.options.suggestionOptions,
command: ({ range, attributes }) => {
this.editor
.chain()