🎨 Site > Store > Separate into modules

This commit is contained in:
brunosimon
2017-08-14 22:43:50 +02:00
parent 0eb639a9db
commit 2b0dec5d0a
17 changed files with 178 additions and 184 deletions
+17
View File
@@ -0,0 +1,17 @@
import Vue from 'vue'
import Vuex from 'vuex'
import chatModule from './modules/chat'
import projectsModule from './modules/projects'
import filesModule from './modules/files'
Vue.use(Vuex)
export default new Vuex.Store({
modules:
{
chat: chatModule,
projects: projectsModule,
files: filesModule
}
})
+32
View File
@@ -0,0 +1,32 @@
export default {
state:
{
user: null,
pendingUser: null,
messages: [],
pendingMessage: null
},
mutations:
{
createMessage(state, data)
{
state.messages.push(data)
if(state.messages.length > 100)
{
state.messages.splice(0, state.messages.length - 100)
}
},
updateUser(state, data)
{
state.user = data
},
askUpdateUser(state, data)
{
state.pendingUser = data
}
}
}
+58
View File
@@ -0,0 +1,58 @@
import FileTree from '@/utils/FileTree'
export default {
state:
{
tree: new FileTree({ autoWash: true }),
current: null,
currentVersion: null
},
mutations:
{
updateFiles(state, data)
{
state.tree = new FileTree({ autoWash: true })
for(const file of data)
{
state.tree.addFile(file.path.full, file)
}
},
createFile(state, data)
{
state.tree.addFile(data.path.full, data)
},
deleteFile(state, data)
{
state.tree.removeFile(data.path.full)
},
setFile(state, data)
{
const file = state.tree.getFile(data)
if(file)
{
state.current = file
}
},
createVersion(state, data)
{
const file = state.tree.getFile(data.file)
if(file)
{
file.data.versions.push(data.version)
}
},
setVersion(state, data)
{
state.currentVersion = data
}
}
}
+51
View File
@@ -0,0 +1,51 @@
export default {
state:
{
all: {},
current: null
},
mutations:
{
updateProjects(state, data)
{
state.all = data
// Has a current project
if(state.current)
{
// Current project has been removed
if(typeof state.all[data] === 'undefined')
{
state.current = null
}
}
// No current project
else
{
const projectKeys = Object.keys(state.all)
// If only one project, set has current
if(projectKeys.length === 1)
{
state.current = state.all[projectKeys[0]]
}
}
},
addProject(state, data)
{
state.all.push(data)
},
setProject(state, data)
{
// Test of project exist
if(typeof state.all[data] !== 'undefined')
{
state.current = state.all[data]
}
},
}
}