quill-mention
Version:
@mentions for the Quill rich text editor
35 lines (27 loc) • 836 B
JavaScript
import Quill from 'quill';
const Embed = Quill.import('blots/embed');
class MentionBlot extends Embed {
static create(data) {
const node = super.create();
const denotationChar = document.createElement('span');
denotationChar.className = 'ql-mention-denotation-char';
denotationChar.innerHTML = data.denotationChar;
node.appendChild(denotationChar);
node.innerHTML += data.value;
return MentionBlot.setDataValues(node, data);
}
static setDataValues(element, data) {
const domNode = element;
Object.keys(data).forEach((key) => {
domNode.dataset[key] = data[key];
});
return domNode;
}
static value(domNode) {
return domNode.dataset;
}
}
MentionBlot.blotName = 'mention';
MentionBlot.tagName = 'span';
MentionBlot.className = 'mention';
Quill.register(MentionBlot);