-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
39 lines (37 loc) · 1.03 KB
/
index.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
import { debounce } from "lodash-es";
const main = () => {
const listOfTodos = document.getElementById("todos");
const todos = [];
const addButton = document.getElementById("addTodo");
const newTodo = document.getElementById("newTodo");
listOfTodos.addEventListener("click", (event) => {
if (event.target.tagName === "LI") {
const text = event.textContent;
const filteredTodos = todos.filter((todo) => todo !== text);
render(filteredTodos);
}
});
const addNewTodo = () => {
const text = newTodo.value.trim();
todos.push(text);
render(todos);
newTodo.value = "";
};
const render = (todos) => {
const todosHtml = todos
.map((todo) => {
console.log("render todo");
return `<li>${todo}</li>`;
})
.join("");
listOfTodos.innerHTML = todosHtml;
};
addButton.addEventListener("click", addNewTodo);
newTodo.addEventListener("keypress", (event) => {
if (event.key === "Enter") {
addNewTodo();
}
});
render(todos);
};
export default main;