Merge pull request #576 from ryanbliss/runtime-only-support-for-TodoItemNode

render(h) function support for TodoItem
This commit is contained in:
Hans Pagel 2020-07-20 11:45:26 +02:00 committed by GitHub
commit 9f20038caf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -29,6 +29,39 @@ export default class TodoItem extends Node {
<div class="todo-content" ref="content" :contenteditable="view.editable.toString()"></div>
</li>
`,
/*
The render function enables TodoItem to work in `runtimeonly` builds,
which is required for frameworks requiring strict CSP policies. For
example, doing this is required in Chrome Extensions. Having both
the template and the render function ensures there are no issues
converting the node to JSON and rendering the component.
*/
render(h) {
return h('li', {
attrs: {
'data-type': this.node.type.name,
'data-done': this.node.attrs.done.toString(),
'data-drag-handle': '',
},
}, [
h('span', {
class: 'todo-checkbox',
attrs: {
contenteditable: false,
},
on: {
click: this.onChange,
},
}),
h('div', {
class: 'todo-content',
attrs: {
contenteditable: this.view.editable.toString(),
},
ref: 'content',
}),
])
},
}
}