fix delete recursion bug

AuthorKonata <konata@posteo.jp>
Date
Commit8b99818e0c4e2f72169027496f9cc76d8caa0fcc
Parent5d1a3a9
1 file changed, 2 insertions(+), 4 deletions(-)
▾Mwebclient/src/offline.ts
@@ -151,7 +151,7 @@ function getDirInTree(path: string, create: boolean, offline: boolean): Director
return current;
}
function deleteOfflinePath(path: string): void {
function deleteInOfflineTree(path: string): void {
const basePath = path.split("/").slice(0, -1).join("/");
const fileName = path.split("/").toReversed()[0];
@@ -159,7 +159,6 @@ function deleteOfflinePath(path: string): void {
if (!node) return;
node.files.delete(fileName);
if (node.files.size === 0) deleteOfflinePath(basePath);
}
export const clearDirectoryCache = (path: string) => {
@@ -238,7 +237,6 @@ function combineFileListings(listing1: FileListing, listing2: FileListing): File
export async function listFiles(dir: string, offline: boolean, recursive: boolean): Promise<FileListing> {
if (offline) {
const files = listOfflineFiles(dir);
console.log(recursive ? files : pruneChildren(files))
return recursive ? files : pruneChildren(files);
}
const cached = getDirInTree(dir, false, false);
@@ -358,7 +356,7 @@ export async function deleteFile(
const db = await openDB();
await db.deleteAll(FileStore, toDelete);
deleteOfflinePath(fullPath);
deleteInOfflineTree(fullPath);
for (const path of toDelete) {
getDownloadStatus(path)[1](undefined);
}