-
Notifications
You must be signed in to change notification settings - Fork 1
/
main.js
55 lines (42 loc) · 1.56 KB
/
main.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
var Liquid = require('@zharktas/liquid.js');
var liquid = new Liquid();
module.exports.addTodo = function(text){
var checkbox = document.createElement('input');
checkbox.type = 'checkbox';
checkbox.classList.add('toggle');
checkbox.addEventListener('click', toggleDone);
checkbox.setAttribute('data-handler', 'toggleClick');
liquid.registerHandler('toggleClick', {'click': toggleDone});
var destroy = document.createElement('button');
destroy.classList.add('destroy');
destroy.addEventListener('click', removeTodo);
destroy.setAttribute('data-handler', 'destroyClick');
liquid.registerHandler('destroyClick', {'click': removeTodo});
var todo = document.createElement('label');
todo.textContent = text;
var element = document.createElement('li')
element.classList.add('list-group-item');
element.appendChild(checkbox);
element.appendChild(todo);
element.appendChild(destroy);
document.querySelector('.todo-list').appendChild(element);
document.getElementById('todo-text').value = "";
};
var toggleDone = function(event){
var element = event.target;
if ( element.nextSibling.classList.contains('done') ){
element.nextSibling.classList.remove('done');
}
else {
element.nextSibling.classList.add('done');
}
};
var removeTodo = function(event){
var element = event.target.parentNode;
element.parentNode.removeChild(element);
};
module.exports.removeTodo = removeTodo;
module.exports.transfer = function(){
liquid.vdom.virtualize();
liquid.vdom.transfer();
};