49_TodoList
๐ป ์ฃผ์  : ํฌ๋ ๋ฆฌ์คํธ, ๋ก์ปฌ ์ ์ฅ์์ ์ ์ฅ
- ์ผ์ชฝ ํด๋ฆญ : ์๋ฃ
 - ์ค๋ฅธ์ชฝ ํด๋ฆญ : ์ญ์ 
 


ํ  ์ผ์ ์
๋ ฅํ๋ฉด ๋ฐฐ์ด์ ์ ์ฅ๋๋ค.
form.addEventListener('submit', (e) => {
  // ์ด๋ฒคํธ ๊ฐ์ฒด๋ฅผ ์์งํด ๊ธฐ๋ณธ๊ฐ ํธ์ถ ๋ฐฉ์ง
  e.preventDefault()
  addTodo()
})
function addTodo(todo) {
  // input์ ์
๋ ฅ๋ value๊ฐ์ todoText์ ์ ์ฅ
  let todoText = input.value
  if(todo) {
    todoText = todo.text
  }
  if(todoText) {
    const todoEl = document.createElement('li')
    if(todo && todo.completed) {
      todoEl.classList.add('completed')
    }
    todoEl.innerText = todoText
    todoEl.addEventListener('click', () => todoEl.classList.toggle('completed'))
    // ์ค๋ฅธ์ชฝํด๋ฆญ
    todoEl.addEventListener('contextmenu', (e) => {
      e.preventDefault()
      todoEl.remove()
      updateLS()
    })
    todosUL.appendChild(todoEl)
    input.value=''
    updateLS()
  }
}
function updateLS() {
  todosEl = document.querySelectorAll('li')
  const todos = []
  todosEl.forEach(todoEl => {
      todos.push({
          text: todoEl.innerText,
          completed: todoEl.classList.contains('completed')
      })
  })
  localStorage.setItem('todos', JSON.stringify(todos))
}
// localStorage.setItem('name', JSON.stringify(obj))
// JSON.parse(localStorage.getItem(obj))
const todos = JSON.parse(localStorage.getItem('todos'))
if(todos) {
  todos.forEach(todo => addTodo(todo));
}