From 6962f200293bfdc4f78c798d91a3d13b8aa8d146 Mon Sep 17 00:00:00 2001 From: Matt Marcha <matt@marcha.pro> Date: Sat, 10 Aug 2024 12:47:53 -1000 Subject: [PATCH] section 9 --- awesome_owl/static/src/todo_list/todo_list.js | 17 ++++++++++++----- awesome_owl/static/src/todo_list/todo_list.xml | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/awesome_owl/static/src/todo_list/todo_list.js b/awesome_owl/static/src/todo_list/todo_list.js index 7cfcd08..1f24099 100644 --- a/awesome_owl/static/src/todo_list/todo_list.js +++ b/awesome_owl/static/src/todo_list/todo_list.js @@ -8,10 +8,17 @@ export class TodoList extends Component { static components = { TodoItem }; setup() { - this.todos = useState([ - {id: 3, description: "buy milk", isCompleted: false }, - { id: 1, description: "have a shower", isCompleted: true }, - { id: 2, description: "sing loudly", isCompleted: false } - ]); + this.todos = useState([]); + } + + addTodo(ev) { + // If the key was enter and input isn't empty + 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 }); + ev.target.value = ''; + } + } } } \ 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 83537a0..0ff8792 100644 --- a/awesome_owl/static/src/todo_list/todo_list.xml +++ b/awesome_owl/static/src/todo_list/todo_list.xml @@ -1,6 +1,7 @@ <?xml version="1.0" encoding="UTF-8" ?> <templates xml:space="preserve"> <t t-name="awesome_owl.todo_list"> + <p><input type="text" name="new-todo" placeholder="Add new todo" t-on-keyup="addTodo" /></p> <div class="d-inline-block border p-2 m-2"> <t t-foreach="todos" t-as="todo" t-key="todo.id"> <TodoItem todo="todo" />