From 33d99721103fca92f498a6aebe8eaae1d8d56aa2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philipp=20Ku=CC=88hn?= Date: Sat, 29 Sep 2018 13:09:45 +0200 Subject: [PATCH] add some default options for mentions --- .../tiptap-extensions/src/nodes/Mention.js | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/tiptap-extensions/src/nodes/Mention.js b/packages/tiptap-extensions/src/nodes/Mention.js index 8f6d95f7..b8523609 100644 --- a/packages/tiptap-extensions/src/nodes/Mention.js +++ b/packages/tiptap-extensions/src/nodes/Mention.js @@ -8,6 +8,18 @@ export default class MentionNode extends Node { return 'mention' } + get defaultOptions() { + return { + matcher: { + char: '@', + allowSpaces: false, + startOfLine: false, + }, + mentionClass: 'mention', + suggestionClass: 'mention-suggestion', + } + } + get schema() { return { attrs: { @@ -21,7 +33,7 @@ export default class MentionNode extends Node { toDOM: node => [ 'span', { - class: 'mention', + class: this.options.mentionClass, 'data-mention-id': node.attrs.id, }, `@${node.attrs.label}`, @@ -42,21 +54,17 @@ export default class MentionNode extends Node { get plugins() { return [ SuggestionsPlugin({ - suggestionClass: 'mention-suggestion', - matcher: { - char: '@', - allowSpaces: false, - startOfLine: false, - }, command: ({ range, attrs, schema }) => { return replaceText(range, schema.nodes.mention, attrs) }, + matcher: this.options.matcher, items: this.options.items, onEnter: this.options.onEnter, onChange: this.options.onChange, onExit: this.options.onExit, onKeyDown: this.options.onKeyDown, onFilter: this.options.onFilter, + suggestionClass: this.options.suggestionClass, }), ] }