/* Blocks: * Paragraph * Header * SimpleImage * Quote * CodeTool * List * Delimiter * RawTool Other: * InlineCode */ const EditorBlock = { oninit: function(vnode) { this.id = null this.output = null this.onbeforeupdate(vnode) }, onbeforeupdate: function(vnode) { if (!vnode.attrs.block && !this.id) { return false } if (vnode.attrs.block && vnode.attrs.block.id && vnode.attrs.block.id === this.id) { return false } if (vnode.attrs.block && vnode.attrs.block.id && vnode.attrs.block.id !== this.id) { this.renderblock(vnode) } else { this.output = null } }, renderblock: function(vnode) { let block = vnode.attrs.block this.id = block.id switch (block.type) { case 'paragraph': this.output = m('p', m.trust(block.data.text)) break case 'htmlraw': this.output = m.trust(block.data.html) break default: this.output = m('p', m.trust(block)) break } }, view: function(vnode) { return this.output } } module.exports = EditorBlock