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)
|
||||
|
||||
// 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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue