class Model { constructor() { this.todos = JSON.parse(localStorage.getItem('todos')) || [] } #commit(todos) { localStorage.setItem('todos', JSON.stringify(todos)) } getTodos(filter){ if (filter === "active") return this.todos.filter(todo => !todo.done) if (filter === "done") return this.todos.filter(todo => todo.done) return this.todos } add(todoText) { const todo = { id: this.todos.length > 0 ? this.todos[this.todos.length - 1].id + 1 : 1, text: todoText, done : false, } this.todos.push(todo) this.#commit(this.todos) } edit(id, updatedText) { this.todos = this.todos.map(todo => todo.id === id ? { id: todo.id, text: updatedText, done: todo.done} : todo ) this.#commit(this.todos) } delete(id) { this.todos = this.todos.filter(todo => todo.id !== id) this.#commit(this.todos) } toggle(id) { this.todos = this.todos.map(todo => todo.id === id ? { id: todo.id, text: todo.text, done: !todo.done } : todo ) this.#commit(this.todos) } }