wbu-design-system
Version:
WhereBy.Design is the nascent design system for WhereBy.Us
50 lines (39 loc) • 1.39 kB
JavaScript
import Quill from 'quill';
const BlockEmbed = Quill.import('blots/block/embed');
class GiphyBlot extends BlockEmbed {
static create({ src, align }) {
const divNode = document.createElement('div');
divNode.classList.add('composer__figure');
const imageNode = document.createElement('img');
imageNode.setAttribute('src', src);
divNode.appendChild(imageNode);
const deleteBtnNode = document.createElement('button');
deleteBtnNode.classList.add('composer__figure__overlay-button', 'border-white', 'cursor-pointer', 'rounded-full', 'z-10', 'top-3', 'right-3');
deleteBtnNode.innerText = 'X';
deleteBtnNode.contentEditable = 'false';
divNode.appendChild(deleteBtnNode);
if (align === 'right') {
divNode.classList.add('ml-auto', 'mr-0');
}
if (align === 'center') {
divNode.classList.add('ml-auto', 'mr-auto');
}
divNode.setAttribute('data-align', align);
divNode.setAttribute('data-src', src);
// eslint-disable-next-line func-names
deleteBtnNode.onclick = function () {
return divNode.parentNode.removeChild(divNode);
};
return divNode;
}
static value(node) {
return {
align: node.getAttribute('data-align'),
src: node.getAttribute('data-src'),
};
}
}
GiphyBlot.blotName = 'giphyBlot';
export {
GiphyBlot, // eslint-disable-line import/prefer-default-export
};