fix: only replace from path from start of string

This commit is contained in:
Methapon2001 2023-12-10 20:52:05 +07:00
parent 0225d6387f
commit 4e398ab2ad
No known key found for this signature in database
GPG key ID: 849924FEF46BD132

View file

@ -152,6 +152,7 @@ const useStorage = defineStore('storageStore', () => {
const arr = path.split('/').filter(Boolean)
// get all parent to the root structure
// this will also triggher init structure as it get root structure
for (let i = 0; i < arr.length; i++) {
const current = arr.slice(0, i - arr.length).join('/') + '/'
if (!folder.value[current] || force) await getStorage(current)
@ -206,17 +207,28 @@ const useStorage = defineStore('storageStore', () => {
}
}
const regex = new RegExp(`^${data.from}`)
for (let key in folder.value) {
if (key.startsWith(data.from)) {
folder.value[key.replace(data.from, data.to)] = folder.value[key].map(
folder.value[key.replace(regex, data.to)] = folder.value[key].map(
(v) => {
v.pathname = v.pathname.replace(data.from, data.to)
v.pathname = v.pathname.replace(regex, data.to)
return v
},
)
delete folder.value[key]
}
}
for (let key in file.value) {
if (key.startsWith(data.from)) {
file.value[key.replace(regex, data.to)] = file.value[key].map((v) => {
v.pathname = v.pathname.replace(regex, data.to)
return v
})
delete file.value[key]
}
}
})
socket.on('DeleteFolder', (data: { pathname: string }) => {
for (let key in folder.value) {