diff --git a/products/ASC.Files/Client/src/store/FilesStore.js b/products/ASC.Files/Client/src/store/FilesStore.js index d93444a411..9361ab83d3 100644 --- a/products/ASC.Files/Client/src/store/FilesStore.js +++ b/products/ASC.Files/Client/src/store/FilesStore.js @@ -72,6 +72,9 @@ class FilesStore { socketHelper.on("s:modify-folder", async (opt) => { console.log("Call s:modify-folder", opt); + + if (this.isLoading) return; + //selectedFolderStore.id === folderId && this.fetchFiles(folderId); switch (opt?.cmd) { case "create": @@ -79,9 +82,8 @@ class FilesStore { const foundIndex = this.files.findIndex((x) => x.id === opt?.id); if (foundIndex > -1) return; - const file = opt?.data - ? JSON.parse(opt?.data) - : await api.files.getFileInfo(opt?.id); + const file = JSON.parse(opt?.data); + this.setFiles([file, ...this.files]); } else if (opt?.type == "folder" && opt?.id) { const foundIndex = this.files.findIndex((x) => x.id === opt?.id); @@ -98,7 +100,16 @@ class FilesStore { if (foundIndex == -1) return; this.setFiles( - this.files.filter((value, index) => { + this.files.filter((_, index) => { + return index !== foundIndex; + }) + ); + } else if (opt?.type == "folder" && opt?.id) { + const foundIndex = this.folders.findIndex((x) => x.id === opt?.id); + if (foundIndex == -1) return; + + this.setFolders( + this.folders.filter((_, index) => { return index !== foundIndex; }) ); diff --git a/products/ASC.Files/Core/Services/WCFService/FileOperations/FileDeleteOperation.cs b/products/ASC.Files/Core/Services/WCFService/FileOperations/FileDeleteOperation.cs index 0454e5ecd1..35f6bed6ad 100644 --- a/products/ASC.Files/Core/Services/WCFService/FileOperations/FileDeleteOperation.cs +++ b/products/ASC.Files/Core/Services/WCFService/FileOperations/FileDeleteOperation.cs @@ -178,7 +178,7 @@ namespace ASC.Web.Files.Services.WCFService.FileOperations FolderDao.DeleteFolder(folder.ID); filesMessageService.Send(folder, _headers, MessageAction.FolderDeleted, folder.Title); - var room = documentServiceHelper.GetSocketRoom(folderId); + var room = documentServiceHelper.GetSocketRoom(folder.RootFolderId); socketManager.DeleteFolder(folder.ID, room); ProcessedFolder(folderId); @@ -204,7 +204,7 @@ namespace ASC.Web.Files.Services.WCFService.FileOperations filesMessageService.Send(folder, _headers, MessageAction.FolderMovedToTrash, folder.Title); } - var room = documentServiceHelper.GetSocketRoom(folderId); + var room = documentServiceHelper.GetSocketRoom(folder.RootFolderId); socketManager.DeleteFolder(folder.ID, room); ProcessedFolder(folderId);