diff --git a/frontend/stores/store.ts b/frontend/stores/store.ts index cb009b1..6e51293 100644 --- a/frontend/stores/store.ts +++ b/frontend/stores/store.ts @@ -18,13 +18,21 @@ class Store { async saveTodo(todo: Todo) { const saved = await endpoint.saveTodo(todo); - if (todo.id === 0) { + if (this.isNewTodo(todo)) { this.addTodo(saved); } else { this.updateTodo(saved); } } + private todoExists(todo: Todo) { + return this.todos.some((t) => t.id === todo.id); + } + + private isNewTodo(todo: Todo) { + return !this.todoExists(todo); + } + private addTodo(todo: Todo) { this.todos = [...this.todos, todo]; }