fix: only replace from path from start of string
This commit is contained in:
parent
0225d6387f
commit
4e398ab2ad
1 changed files with 14 additions and 2 deletions
|
|
@ -152,6 +152,7 @@ const useStorage = defineStore('storageStore', () => {
|
||||||
const arr = path.split('/').filter(Boolean)
|
const arr = path.split('/').filter(Boolean)
|
||||||
|
|
||||||
// get all parent to the root structure
|
// 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++) {
|
for (let i = 0; i < arr.length; i++) {
|
||||||
const current = arr.slice(0, i - arr.length).join('/') + '/'
|
const current = arr.slice(0, i - arr.length).join('/') + '/'
|
||||||
if (!folder.value[current] || force) await getStorage(current)
|
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) {
|
for (let key in folder.value) {
|
||||||
if (key.startsWith(data.from)) {
|
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) => {
|
||||||
v.pathname = v.pathname.replace(data.from, data.to)
|
v.pathname = v.pathname.replace(regex, data.to)
|
||||||
return v
|
return v
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
delete folder.value[key]
|
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 }) => {
|
socket.on('DeleteFolder', (data: { pathname: string }) => {
|
||||||
for (let key in folder.value) {
|
for (let key in folder.value) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue