diff --git a/pages/index/index.js b/pages/index/index.js index f3d29ab..6b0515c 100644 --- a/pages/index/index.js +++ b/pages/index/index.js @@ -1,4 +1,5 @@ var observer = require('../../libs/observer').observer; +var action = require('../../libs/mobx').action; Page(observer({ props: { todoStore: require('../../stores/todoStore').default @@ -10,9 +11,9 @@ Page(observer({ this.props.todoStore.findByTodoId(todoId).completed = !status; }, - applyFilter: function(e) { + applyFilter: action(function(e) { this.props.todoStore.filter = e.target.dataset.key; - }, + }), todosFiltered: function(){ return this.props.todoStore.filterBy(); diff --git a/stores/todoStore.js b/stores/todoStore.js index d579ab1..2e8c6f2 100644 --- a/stores/todoStore.js +++ b/stores/todoStore.js @@ -3,6 +3,7 @@ var extendObservable = require('../libs/mobx').extendObservable; var computed = require('../libs/mobx').computed; var toJS = require('../libs/mobx').toJS; var TodoItem = require('./todoItemStore').default; +var action = mobx.action; var TodoStore = function() { extendObservable(this, { @@ -36,16 +37,16 @@ var TodoStore = function() { }); - this.addTodo = function(title) { + this.addTodo = action(function(title) { this.todos.push( new TodoItem(title) ); - } + }) - this.findByTodoId = function(id) { + this.findByTodoId = action(function(id) { var item = this.todos.find( function(element) { return element.id === id; }) return item; - } + }) } module.exports = {