diff --git a/awesome_owl/static/src/todo_list/todo_item.js b/awesome_owl/static/src/todo_list/todo_item.js
index 2d1f126..d118ff7 100644
--- a/awesome_owl/static/src/todo_list/todo_item.js
+++ b/awesome_owl/static/src/todo_list/todo_item.js
@@ -10,9 +10,14 @@ export class TodoItem extends Component {
shape: { id: Number, description: String, isCompleted: Boolean }
},
onToggle: Function,
+ removeTodo: Function,
};
toggle() {
this.props.onToggle(this.props.todo.id);
- }
+ }
+
+ remove() {
+ this.props.removeTodo(this.props.todo.id);
+ }
}
\ No newline at end of file
diff --git a/awesome_owl/static/src/todo_list/todo_item.xml b/awesome_owl/static/src/todo_list/todo_item.xml
index 5eda902..45cbfbe 100644
--- a/awesome_owl/static/src/todo_list/todo_item.xml
+++ b/awesome_owl/static/src/todo_list/todo_item.xml
@@ -7,6 +7,7 @@
.
+
\ No newline at end of file
diff --git a/awesome_owl/static/src/todo_list/todo_list.js b/awesome_owl/static/src/todo_list/todo_list.js
index 3433421..d0e8723 100644
--- a/awesome_owl/static/src/todo_list/todo_list.js
+++ b/awesome_owl/static/src/todo_list/todo_list.js
@@ -10,6 +10,7 @@ export class TodoList extends Component {
static components = { TodoItem };
setup() {
+ this.todoCounter = 1;
this.todos = useState([]);
useAutofocus('todo_input');
}
@@ -19,7 +20,7 @@ export class TodoList extends Component {
if(ev.keyCode === 13) {
if(ev.target.value !== '') {
// Let's create a todo
- this.todos.push({ id: this.todos.length+1, description: ev.target.value, isCompleted: false });
+ this.todos.push({ id: this.todoCounter++, description: ev.target.value, isCompleted: false });
ev.target.value = '';
}
}
@@ -31,4 +32,11 @@ export class TodoList extends Component {
todo.isCompleted = !todo.isCompleted;
}
}
+
+ removeItem(id) {
+ const todoIndex = this.todos.findIndex((obj) => obj.id === id);
+ if (todoIndex >= 0) {
+ this.todos.splice(todoIndex, 1);
+ }
+ }
}
\ No newline at end of file
diff --git a/awesome_owl/static/src/todo_list/todo_list.xml b/awesome_owl/static/src/todo_list/todo_list.xml
index 1cfca54..30b9dfc 100644
--- a/awesome_owl/static/src/todo_list/todo_list.xml
+++ b/awesome_owl/static/src/todo_list/todo_list.xml
@@ -4,7 +4,7 @@
-
+