refactor:add socket CRUD
This commit is contained in:
parent
fc00ff02ab
commit
97fb89281c
3 changed files with 251 additions and 6 deletions
113
Services/client/src/stores/socket.ts
Normal file
113
Services/client/src/stores/socket.ts
Normal file
|
|
@ -0,0 +1,113 @@
|
|||
import { defineStore } from 'pinia'
|
||||
import { reactive } from 'vue'
|
||||
import { useFileInfoStore } from '@/stores/file-info-data'
|
||||
import { io } from 'socket.io-client'
|
||||
import { useTreeDataStore } from '@/stores/tree-data'
|
||||
import { storeToRefs } from 'pinia'
|
||||
|
||||
const {
|
||||
data,
|
||||
listDataFolder,
|
||||
currentFolder,
|
||||
currentPath,
|
||||
currentFile,
|
||||
listDataFile,
|
||||
} = storeToRefs(useTreeDataStore())
|
||||
const {
|
||||
updateEditFolder,
|
||||
updateDeleteFolder,
|
||||
updateCreateFolder,
|
||||
updateDeleteFile,
|
||||
updateNewFile,
|
||||
} = useTreeDataStore()
|
||||
|
||||
const { fileInfo } = storeToRefs(useFileInfoStore())
|
||||
export const state = reactive({
|
||||
connected: false,
|
||||
})
|
||||
|
||||
export const useSocketStore = defineStore('socket', () => {
|
||||
const socket = io('http://localhost:25570')
|
||||
|
||||
socket.on('connect', () => {
|
||||
state.connected = true
|
||||
})
|
||||
|
||||
socket.on('CreateFolder', (dataSocket) => {
|
||||
const { pathname } = dataSocket
|
||||
|
||||
const pathArray: string[] = pathname.split('/').filter(Boolean)
|
||||
const currentPathResult = pathArray.slice(0, -1).join('/') + '/'
|
||||
|
||||
if (currentPath.value == currentPathResult) {
|
||||
data.value = updateCreateFolder(
|
||||
data.value,
|
||||
pathArray.length,
|
||||
currentPathResult,
|
||||
pathname,
|
||||
{
|
||||
pathname: pathname,
|
||||
name: pathArray[pathArray.length - 1],
|
||||
status: true,
|
||||
folder: [],
|
||||
file: [],
|
||||
},
|
||||
)
|
||||
|
||||
currentFolder.value.push({
|
||||
pathname: pathname,
|
||||
name: pathArray[pathArray.length - 1],
|
||||
status: true,
|
||||
folder: [],
|
||||
file: [],
|
||||
})
|
||||
|
||||
listDataFolder.value = currentFolder.value
|
||||
}
|
||||
})
|
||||
|
||||
socket.on('EditFolder', (dataSocket) => {
|
||||
const { from, to } = dataSocket
|
||||
data.value = updateEditFolder(data.value, from, to)
|
||||
currentFolder.value = updateEditFolder(currentFolder.value, from, to)
|
||||
listDataFolder.value = updateEditFolder(listDataFolder.value, from, to)
|
||||
})
|
||||
|
||||
socket.on('DeleteFolder', (dataSocket) => {
|
||||
const { pathname } = dataSocket
|
||||
data.value = updateDeleteFolder(data.value, pathname)
|
||||
currentFolder.value = updateDeleteFolder(currentFolder.value, pathname)
|
||||
listDataFolder.value = updateDeleteFolder(listDataFolder.value, pathname)
|
||||
})
|
||||
|
||||
socket?.on('FileDelete', (dataSocket) => {
|
||||
console.log(currentFile)
|
||||
console.log(listDataFile)
|
||||
|
||||
const { pathname } = dataSocket
|
||||
|
||||
currentFile.value = updateDeleteFile(currentFile.value, pathname)
|
||||
listDataFile.value = updateDeleteFile(listDataFile.value, pathname)
|
||||
})
|
||||
|
||||
socket.on('FileUpdate', (dataSocket) => {
|
||||
const metadata = dataSocket
|
||||
|
||||
const pathArray: string[] = metadata.pathname.split('/').filter(Boolean)
|
||||
const currentPathResult = pathArray.slice(0, -1).join('/') + '/'
|
||||
|
||||
if (currentPath.value == currentPathResult) {
|
||||
listDataFile.value = currentFile.value = updateNewFile(
|
||||
currentFile.value,
|
||||
metadata.pathname,
|
||||
metadata,
|
||||
)
|
||||
}
|
||||
|
||||
console.log(fileInfo)
|
||||
})
|
||||
|
||||
socket.on('disconnect', () => {
|
||||
state.connected = false
|
||||
})
|
||||
})
|
||||
Loading…
Add table
Add a link
Reference in a new issue