Todo

Here is the code for a todo store

const todoStore = new Store({todos:[]}, 'add', 'remove', 'update', 'complete', 'load');
todoStore.add.add((state, todo) => {
  return {...state, todos : [...state.todos, {text: todo, completed: false}]}
})
todoStore.remove.add((state, id) => {
  return {...state, todos : [...state.todos.slice(0, id), ...state.todos.slice(id + 1)]}
})
todoStore.update.add((state, id, todo) => {
  return {...state, todos : [...state.todos.slice(0, id), {...todo}, ...state.todos.slice(id + 1)]}
})
todoStore.complete.add((state, id) => {
  let todo = {...state.todos[id]}
  todo.completed = true;
  return {...state, todos : [...state.todos.slice(0, id), {...todo}, ...state.todos.slice(id + 1)]}
})
todoStore.load.add((state) => {
  var dummyData = {
    todos: [
      { text: "Learn how to use Sinux", completed: false }
    ]
  }
  return new Promise((resolve, reject) => {
    setTimeout(()=> resolve({...state, todos : [...state.todos, ...dummyData.todos]}), 1000)
  })
})

results matching ""

    No results matching ""