🎨 Add site and rename app
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
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
|
||||
},
|
||||
|
||||
state:
|
||||
{
|
||||
serverConfig: null,
|
||||
scrollbarWidth: 0
|
||||
},
|
||||
|
||||
mutations:
|
||||
{
|
||||
updateServerConfig(state, data)
|
||||
{
|
||||
state.serverConfig = data
|
||||
},
|
||||
|
||||
updateScrollbarWidth(state, data)
|
||||
{
|
||||
state.scrollbarWidth = data
|
||||
}
|
||||
}
|
||||
})
|
||||
@@ -0,0 +1,81 @@
|
||||
export default {
|
||||
state:
|
||||
{
|
||||
open: false,
|
||||
user: null,
|
||||
pendingUser: null,
|
||||
messages: [],
|
||||
pendingMessage: null,
|
||||
pendingAlert: null,
|
||||
question: null,
|
||||
unreadCount: 0
|
||||
},
|
||||
|
||||
mutations:
|
||||
{
|
||||
emptyMessages(state)
|
||||
{
|
||||
state.messages = []
|
||||
},
|
||||
|
||||
createMessage(state, data)
|
||||
{
|
||||
state.messages.push(data)
|
||||
|
||||
// Add to unread count if not open or document is hidden (tab not active)
|
||||
if(!state.open || document.hidden)
|
||||
{
|
||||
state.unreadCount++
|
||||
}
|
||||
|
||||
// Clamp
|
||||
if(state.messages.length > 100)
|
||||
{
|
||||
state.messages.splice(0, state.messages.length - 100)
|
||||
}
|
||||
},
|
||||
|
||||
updateUser(state, data)
|
||||
{
|
||||
state.user = data
|
||||
},
|
||||
|
||||
setPendingUser(state, data)
|
||||
{
|
||||
state.pendingUser = data
|
||||
},
|
||||
|
||||
setPendingMessage(state, data)
|
||||
{
|
||||
state.pendingMessage = data
|
||||
},
|
||||
|
||||
setPendingAlert(state)
|
||||
{
|
||||
const date = new Date()
|
||||
state.pendingAlert = { date }
|
||||
},
|
||||
|
||||
setQuestion(state, data)
|
||||
{
|
||||
state.question = data
|
||||
},
|
||||
|
||||
openChat(state)
|
||||
{
|
||||
state.unreadCount = 0
|
||||
state.open = true
|
||||
},
|
||||
|
||||
closeChat(state)
|
||||
{
|
||||
state.open = false
|
||||
},
|
||||
|
||||
toggleChat(state)
|
||||
{
|
||||
state.unreadCount = 0
|
||||
state.open = !state.open
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
import FileTree from '@/utils/FileTree'
|
||||
|
||||
export default {
|
||||
state:
|
||||
{
|
||||
tree: new FileTree({ autoWash: true }),
|
||||
currentFile: null,
|
||||
currentVersion: null,
|
||||
currentLine: null,
|
||||
search: ''
|
||||
},
|
||||
|
||||
mutations:
|
||||
{
|
||||
updateFiles(state, data)
|
||||
{
|
||||
state.tree = new FileTree({ autoWash: true })
|
||||
|
||||
for(const file of data)
|
||||
{
|
||||
file.isNew = false
|
||||
file.isChanged = false
|
||||
state.tree.addFile(file.path.full, file)
|
||||
}
|
||||
},
|
||||
|
||||
createFile(state, data)
|
||||
{
|
||||
data.isNew = true
|
||||
data.isChanged = false
|
||||
data.isActive = false
|
||||
state.tree.addFile(data.path.full, data)
|
||||
},
|
||||
|
||||
deleteFile(state, data)
|
||||
{
|
||||
state.tree.removeFile(data.path.full)
|
||||
},
|
||||
|
||||
setFile(state, data)
|
||||
{
|
||||
// Null file
|
||||
if(!data)
|
||||
{
|
||||
if(state.currentFile)
|
||||
{
|
||||
state.currentFile.isActive = false
|
||||
}
|
||||
|
||||
state.currentFile = null
|
||||
}
|
||||
|
||||
// File path
|
||||
else
|
||||
{
|
||||
// Retrieve file from path
|
||||
const file = state.tree.getFile(data)
|
||||
|
||||
// No current file or file different than current
|
||||
if(!state.currentFile || state.currentFile.id !== file.id)
|
||||
{
|
||||
if(state.currentFile)
|
||||
{
|
||||
state.currentFile.isActive = false
|
||||
}
|
||||
|
||||
state.currentFile = file
|
||||
state.currentFile.isActive = true
|
||||
state.currentFile.isNew = false
|
||||
state.currentFile.isChanged = false
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
createVersion(state, data)
|
||||
{
|
||||
const file = state.tree.getFile(data.file)
|
||||
|
||||
if(file)
|
||||
{
|
||||
file.versions.push(data.version)
|
||||
file.isChanged = true
|
||||
}
|
||||
},
|
||||
|
||||
setVersion(state, data)
|
||||
{
|
||||
// Date sent
|
||||
if(typeof data === 'string')
|
||||
{
|
||||
// Find version by date
|
||||
const version = state.currentFile.versions.find((version) => version.date === data)
|
||||
|
||||
// Found
|
||||
if(version)
|
||||
{
|
||||
state.currentVersion = version
|
||||
}
|
||||
}
|
||||
|
||||
// Version directly sent
|
||||
else
|
||||
{
|
||||
state.currentVersion = data
|
||||
}
|
||||
},
|
||||
|
||||
setLine(state, data)
|
||||
{
|
||||
state.currentLine = data
|
||||
},
|
||||
|
||||
searchFile(state, data)
|
||||
{
|
||||
state.search = data
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
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[state.current.slug] === 'undefined')
|
||||
{
|
||||
const projectKeys = Object.keys(state.all)
|
||||
state.current = state.all[projectKeys[0]]
|
||||
}
|
||||
}
|
||||
|
||||
// No current project
|
||||
else
|
||||
{
|
||||
// Set first project as current
|
||||
const projectKeys = Object.keys(state.all)
|
||||
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]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user