14: Humidification

Let's resolve the violation of DRY-principle in some invocations.

  1. Add destroyTodoByIndex function to controller element by x-functions directive.
  2. Update doneEdit invocation with destroyTodoByIndex function.
  3. Apply destroyTodoByIndex function to destroyTodo invocation.

<body>
  <section class="todoapp"


      doneEdit (_, payload, meta) {


        const newTitle = meta._.$.value.trim()
        if (newTitle) {
          todo.title = newTitle
        } else {
          this.todos.splice(payload.index, 1)
          _.functions.destroyTodoByIndex(this.todos, payload.index)
        }
      },
      cancelEdit (_, payload, meta) {
        this.editingTodoIndex = -1
      },
      destroyTodo (_, payload, meta) {
        this.todos.splice(payload.index, 1)
        _.functions.destroyTodoByIndex(this.todos, payload.index)
      },
    }"
    x-functions="{
      destroyTodoByIndex (todos, index) {
        todos.splice(index, 1)
      }
    }"
  ::>



  </section>
</body>
</html>