mirror of
https://github.com/ueberdosis/tiptap.git
synced 2024-12-15 02:59:01 +08:00
Merge pull request #576 from ryanbliss/runtime-only-support-for-TodoItemNode
render(h) function support for TodoItem
This commit is contained in:
commit
9f20038caf
@ -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',
|
||||
}),
|
||||
])
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user