var html = require('nanohtml') module.exports = Todo function Todo (todo, emit) { var clx = classList({ completed: todo.done, editing: todo.editing }) return html`
  • ` function toggle (e) { emit('todos:toggle', todo.id) } function edit (e) { emit('todos:edit', todo.id) } function destroy (e) { emit('todos:delete', todo.id) } function update (e) { emit('todos:update', { id: todo.id, editing: false, name: e.target.value }) } function handleEditKeydown (e) { if (e.keyCode === 13) update(e) // Enter else if (e.code === 27) emit('todos:unedit') // Escape } function classList (classes) { var str = '' var keys = Object.keys(classes) for (var i = 0, len = keys.length; i < len; i++) { var key = keys[i] var val = classes[key] if (val) str += (key + ' ') } return str } }