-
Notifications
You must be signed in to change notification settings - Fork 6
/
TodosMutations.js
31 lines (27 loc) · 883 Bytes
/
TodosMutations.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import Vue from 'vue';
export const ADD_TODO = 'ADD_TODO';
export const REMOVE_TODO = 'REMOVE_TODO';
export const TOGGLE_TODO = 'TOGGLE_TODO;';
export default {
[ADD_TODO](state, payload) {
state.todos.push({
id: payload.id,
body: payload.body,
completed: false
})
},
[REMOVE_TODO](state, payload) {
var index = -1;
for(var i = 0; i < state.todos.length; i++) {
if(state.todos[i].id == payload) {
index = i;
}
}
if (index != -1) {
state.todos.splice(index, 1);
}
},
[TOGGLE_TODO](state, payload) {
state.todos.find(todo => todo.id === payload).completed = !state.todos.find(todo => todo.id === payload).completed;
},
}