From 4e398ab2ad439f70dcad35b4f430d33a48fe4424 Mon Sep 17 00:00:00 2001 From: Methapon2001 <61303214+Methapon2001@users.noreply.github.com> Date: Sun, 10 Dec 2023 20:52:05 +0700 Subject: [PATCH] fix: only replace from path from start of string --- Services/client/src/stores/storage.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Services/client/src/stores/storage.ts b/Services/client/src/stores/storage.ts index 0cfe8a9..1b58a37 100644 --- a/Services/client/src/stores/storage.ts +++ b/Services/client/src/stores/storage.ts @@ -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) {