UNPKG

wbu-design-system

Version:

WhereBy.Design is the nascent design system for WhereBy.Us

69 lines (55 loc) 1.86 kB
import Quill from 'quill'; import { isEmpty } from 'lodash'; const BlockEmbed = Quill.import('blots/block/embed'); class MailingAddressBlot extends BlockEmbed { static create({ street, city, postal, state, }) { if (isEmpty(street) || isEmpty(city) || isEmpty(postal) || isEmpty(state)) { return; } const divNode = document.createElement('div'); divNode.classList.add('composer__contact-address', 'cursor-pointer'); /** * title */ const titleNode = document.createElement('b'); titleNode.innerHTML = 'Our mailing address:'; /** * street, city, state postal */ const streetNode = document.createTextNode(street); const address = `${city}, ${state} ${postal}`; const cityStateAndPostalNode = document.createTextNode(address); divNode.appendChild(titleNode); const brNode1 = document.createElement('br'); divNode.appendChild(brNode1); divNode.appendChild(streetNode); const brNode2 = document.createElement('br'); divNode.appendChild(brNode2); divNode.appendChild(cityStateAndPostalNode); divNode.setAttribute('data-street', street); divNode.setAttribute('data-city', city); divNode.setAttribute('data-postal', postal); divNode.setAttribute('data-state', state); divNode.contentEditable = 'false'; // eslint-disable-next-line consistent-return return divNode; } static value(node) { return { street: node.getAttribute('data-street'), city: node.getAttribute('data-city'), postal: node.getAttribute('data-postal'), state: node.getAttribute('data-state'), }; } } MailingAddressBlot.blotName = 'mailingAddressBlot'; MailingAddressBlot.className = 'composer__mailing-address'; export { MailingAddressBlot, // eslint-disable-line import/prefer-default-export };