From 561c82bccf78ebcf9ebd381ffb34141b10d70e5a Mon Sep 17 00:00:00 2001 From: gopienkonikita Date: Thu, 18 Feb 2021 12:24:06 +0300 Subject: [PATCH] Web: Files: fixed files empty screen --- .../components/Article/Body/ThirdPartyList.js | 9 ++- .../components/Article/Body/TreeFolders.js | 10 ++- .../components/Article/Body/TreeSettings.js | 10 ++- .../src/components/Article/Body/index.js | 34 ++++----- .../components/Article/MainButton/index.js | 10 ++- .../components/dialogs/ConnectDialog/index.js | 71 +++++++++---------- .../components/dialogs/DeleteDialog/index.js | 12 ++-- .../dialogs/DeleteThirdPartyDialog/index.js | 53 +++++++------- .../dialogs/EmptyTrashDialog/index.js | 36 +++++----- .../Home/Section/Body/FilesRowContent.js | 4 +- .../Home/Section/Body/FilesTileContent.js | 19 +++-- .../pages/Home/Section/Body/index.js | 7 +- .../pages/Home/Section/Filter/index.js | 42 +++++------ .../pages/Home/Section/Header/index.js | 3 +- .../pages/Home/Section/Paging/index.js | 10 +-- .../Client/src/components/pages/Home/index.js | 3 +- .../components/panels/NewFilesPanel/index.js | 3 - .../panels/OperationsPanel/index.js | 10 ++- products/ASC.Files/Client/src/index.js | 2 + .../ASC.Files/Client/src/store/FilesStore.js | 39 +++++----- .../Client/src/store/SelectedFolderStore.js | 3 +- .../Client/src/store/TreeFoldersStore.js | 30 +++----- .../Client/src/store/UploadDataStore.js | 11 ++- 23 files changed, 219 insertions(+), 212 deletions(-) diff --git a/products/ASC.Files/Client/src/components/Article/Body/ThirdPartyList.js b/products/ASC.Files/Client/src/components/Article/Body/ThirdPartyList.js index ad83755d45..8c178de8b4 100644 --- a/products/ASC.Files/Client/src/components/Article/Body/ThirdPartyList.js +++ b/products/ASC.Files/Client/src/components/Article/Body/ThirdPartyList.js @@ -217,9 +217,14 @@ const ThirdPartyList = (props) => { }; export default inject( - ({ initFilesStore, filesStore, settingsStore, treeFoldersStore }) => { + ({ + initFilesStore, + settingsStore, + treeFoldersStore, + selectedFolderStore, + }) => { const { setIsLoading } = initFilesStore; - const { setSelectedFolder } = filesStore.selectedFolderStore; + const { setSelectedFolder } = selectedFolderStore; const { setSelectedNode } = treeFoldersStore; const { setConnectItem, diff --git a/products/ASC.Files/Client/src/components/Article/Body/TreeFolders.js b/products/ASC.Files/Client/src/components/Article/Body/TreeFolders.js index f90bdf02ed..9131e5b3ca 100644 --- a/products/ASC.Files/Client/src/components/Article/Body/TreeFolders.js +++ b/products/ASC.Files/Client/src/components/Article/Body/TreeFolders.js @@ -457,9 +457,15 @@ TreeFolders.defaultProps = { }; export default inject( - ({ auth, initFilesStore, filesStore, treeFoldersStore }) => { + ({ + auth, + initFilesStore, + filesStore, + treeFoldersStore, + selectedFolderStore, + }) => { const { setIsLoading, dragging, setDragging, setDragItem } = initFilesStore; - const { selectedFolderStore, filter, setFilter, selection } = filesStore; + const { filter, setFilter, selection } = filesStore; const { treeFolders, diff --git a/products/ASC.Files/Client/src/components/Article/Body/TreeSettings.js b/products/ASC.Files/Client/src/components/Article/Body/TreeSettings.js index b288331cbe..85af2af5c6 100644 --- a/products/ASC.Files/Client/src/components/Article/Body/TreeSettings.js +++ b/products/ASC.Files/Client/src/components/Article/Body/TreeSettings.js @@ -189,9 +189,15 @@ const TreeSettings = (props) => { }; export default inject( - ({ auth, initFilesStore, filesStore, settingsStore, treeFoldersStore }) => { + ({ + auth, + initFilesStore, + settingsStore, + treeFoldersStore, + selectedFolderStore, + }) => { const { setIsLoading, isLoading } = initFilesStore; - const { setSelectedFolder } = filesStore.selectedFolderStore; + const { setSelectedFolder } = selectedFolderStore; const { selectedTreeNode, setSelectedNode } = treeFoldersStore; const { getFilesSettings, diff --git a/products/ASC.Files/Client/src/components/Article/Body/index.js b/products/ASC.Files/Client/src/components/Article/Body/index.js index 043cb7475a..398986ad10 100644 --- a/products/ASC.Files/Client/src/components/Article/Body/index.js +++ b/products/ASC.Files/Client/src/components/Article/Body/index.js @@ -110,21 +110,23 @@ class ArticleBodyContent extends React.Component { } } -export default inject(({ initFilesStore, filesStore, treeFoldersStore }) => { - const { setIsLoading } = initFilesStore; - const { fetchFiles, selectedFolderStore, filter } = filesStore; - const { treeFolders, setSelectedNode, setTreeFolders } = treeFoldersStore; - const selectedTreeNode = [selectedFolderStore.id + ""]; +export default inject( + ({ initFilesStore, filesStore, treeFoldersStore, selectedFolderStore }) => { + const { setIsLoading } = initFilesStore; + const { fetchFiles, filter } = filesStore; + const { treeFolders, setSelectedNode, setTreeFolders } = treeFoldersStore; + const selectedTreeNode = [selectedFolderStore.id + ""]; - return { - selectedFolderTitle: selectedFolderStore.title, - treeFolders, - selectedTreeNode, - filter, + return { + selectedFolderTitle: selectedFolderStore.title, + treeFolders, + selectedTreeNode, + filter, - setIsLoading, - fetchFiles, - setSelectedNode, - setTreeFolders, - }; -})(observer(ArticleBodyContent)); + setIsLoading, + fetchFiles, + setSelectedNode, + setTreeFolders, + }; + } +)(observer(ArticleBodyContent)); diff --git a/products/ASC.Files/Client/src/components/Article/MainButton/index.js b/products/ASC.Files/Client/src/components/Article/MainButton/index.js index ddb88879a1..a9dfd95427 100644 --- a/products/ASC.Files/Client/src/components/Article/MainButton/index.js +++ b/products/ASC.Files/Client/src/components/Article/MainButton/index.js @@ -166,10 +166,16 @@ ArticleMainButtonContent.propTypes = { }; export default inject( - ({ auth, filesStore, uploadDataStore, treeFoldersStore }) => { + ({ + auth, + filesStore, + uploadDataStore, + treeFoldersStore, + selectedFolderStore, + }) => { const { firstLoad, fileActionStore, filter, canCreate } = filesStore; const { isPrivacyFolder } = treeFoldersStore; - const { id } = filesStore.selectedFolderStore; + const { id } = selectedFolderStore; const { startUpload } = uploadDataStore; return { diff --git a/products/ASC.Files/Client/src/components/dialogs/ConnectDialog/index.js b/products/ASC.Files/Client/src/components/dialogs/ConnectDialog/index.js index e92d958bde..f4ce776527 100644 --- a/products/ASC.Files/Client/src/components/dialogs/ConnectDialog/index.js +++ b/products/ASC.Files/Client/src/components/dialogs/ConnectDialog/index.js @@ -27,7 +27,6 @@ const PureConnectDialogContainer = (props) => { t, item, treeFolders, - //setUpdateTree, setTreeFolders, fetchThirdPartyProviders, fetchTreeFolders, @@ -149,7 +148,6 @@ const PureConnectDialogContainer = (props) => { isCorporate ? folderData : null ); setTreeFolders(newTreeFolders); - //setUpdateTree(true); fetchThirdPartyProviders(); const newFolder = @@ -188,7 +186,6 @@ const PureConnectDialogContainer = (props) => { selectedFolderFolders, selectedFolderId, setTreeFolders, - //setUpdateTree, showUrlField, treeFolders, urlValue, @@ -337,39 +334,41 @@ const ConnectDialog = (props) => { ); }; -export default inject(({ filesStore, settingsStore, treeFoldersStore }) => { - const { - providers, - getOAuthToken, - saveThirdParty, - openConnectWindow, - fetchThirdPartyProviders, - } = settingsStore.thirdPartyStore; - const { fetchFiles } = filesStore; +export default inject( + ({ filesStore, settingsStore, treeFoldersStore, selectedFolderStore }) => { + const { + providers, + getOAuthToken, + saveThirdParty, + openConnectWindow, + fetchThirdPartyProviders, + } = settingsStore.thirdPartyStore; + const { fetchFiles } = filesStore; - const { - treeFolders, - setTreeFolders, - myFolderId, - commonFolderId, - fetchTreeFolders, - } = treeFoldersStore; - const { id, folders } = filesStore.selectedFolderStore; + const { + treeFolders, + setTreeFolders, + myFolderId, + commonFolderId, + fetchTreeFolders, + } = treeFoldersStore; + const { id, folders } = selectedFolderStore; - return { - selectedFolderId: id, - selectedFolderFolders: folders, - treeFolders, - myFolderId, - commonFolderId, - providers, + return { + selectedFolderId: id, + selectedFolderFolders: folders, + treeFolders, + myFolderId, + commonFolderId, + providers, - fetchFiles, - setTreeFolders, - getOAuthToken, - saveThirdParty, - openConnectWindow, - fetchThirdPartyProviders, - fetchTreeFolders, - }; -})(observer(ConnectDialog)); + fetchFiles, + setTreeFolders, + getOAuthToken, + saveThirdParty, + openConnectWindow, + fetchThirdPartyProviders, + fetchTreeFolders, + }; + } +)(observer(ConnectDialog)); diff --git a/products/ASC.Files/Client/src/components/dialogs/DeleteDialog/index.js b/products/ASC.Files/Client/src/components/dialogs/DeleteDialog/index.js index 974d93548e..d7459e9ea6 100644 --- a/products/ASC.Files/Client/src/components/dialogs/DeleteDialog/index.js +++ b/products/ASC.Files/Client/src/components/dialogs/DeleteDialog/index.js @@ -64,7 +64,6 @@ class DeleteDialogComponent extends React.Component { clearSecondaryProgressData, t, fetchFiles, - //setUpdateTree, } = this.props; const successMessage = t("DeleteSelectedElem"); api.files @@ -96,7 +95,6 @@ class DeleteDialogComponent extends React.Component { const folders = data.selectedFolder.folders; const foldersCount = data.selectedFolder.foldersCount; loopTreeFolders(path, newTreeFolders, folders, foldersCount); - //setUpdateTree(true); setTreeFolders(newTreeFolders); } toastr.success(successMessage); @@ -286,10 +284,16 @@ const DeleteDialog = (props) => ( ); export default inject( - ({ initFilesStore, filesStore, uploadDataStore, treeFoldersStore }) => { + ({ + initFilesStore, + filesStore, + uploadDataStore, + treeFoldersStore, + selectedFolderStore, + }) => { const { isLoading } = initFilesStore; const { secondaryProgressDataStore } = uploadDataStore; - const { fetchFiles, selection, selectedFolderStore, filter } = filesStore; + const { fetchFiles, selection, filter } = filesStore; const { treeFolders, diff --git a/products/ASC.Files/Client/src/components/dialogs/DeleteThirdPartyDialog/index.js b/products/ASC.Files/Client/src/components/dialogs/DeleteThirdPartyDialog/index.js index 00299d3e47..71119993d7 100644 --- a/products/ASC.Files/Client/src/components/dialogs/DeleteThirdPartyDialog/index.js +++ b/products/ASC.Files/Client/src/components/dialogs/DeleteThirdPartyDialog/index.js @@ -20,18 +20,11 @@ class DeleteThirdPartyDialogComponent extends React.Component { } updateTree = (path, folders) => { - const { - t, - treeFolders, - removeItem, - setTreeFolders, - //setUpdateTree, - } = this.props; + const { t, treeFolders, removeItem, setTreeFolders } = this.props; const newTreeFolders = treeFolders; loopTreeFolders(path, newTreeFolders, folders, null); setTreeFolders(newTreeFolders); - //setUpdateTree(true); toastr.success(t("SuccessDeleteThirdParty", { service: removeItem.title })); }; @@ -104,27 +97,29 @@ const DeleteThirdPartyDialog = (props) => ( ); -export default inject(({ filesStore, thirdParty, treeFoldersStore }) => { - const { providers, setThirdPartyProviders, deleteThirdParty } = thirdParty; - const { fetchFiles } = filesStore; +export default inject( + ({ filesStore, thirdParty, treeFoldersStore, selectedFolderStore }) => { + const { providers, setThirdPartyProviders, deleteThirdParty } = thirdParty; + const { fetchFiles } = filesStore; - const { - treeFolders, - setTreeFolders, - myFolderId, - commonFolderId, - } = treeFoldersStore; + const { + treeFolders, + setTreeFolders, + myFolderId, + commonFolderId, + } = treeFoldersStore; - return { - currentFolderId: filesStore.selectedFolderStore.id, - treeFolders, - myId: myFolderId, - commonId: commonFolderId, - providers, + return { + currentFolderId: selectedFolderStore.id, + treeFolders, + myId: myFolderId, + commonId: commonFolderId, + providers, - fetchFiles, - setTreeFolders, - setThirdPartyProviders, - deleteThirdParty, - }; -})(withRouter(observer(DeleteThirdPartyDialog))); + fetchFiles, + setTreeFolders, + setThirdPartyProviders, + deleteThirdParty, + }; + } +)(withRouter(observer(DeleteThirdPartyDialog))); diff --git a/products/ASC.Files/Client/src/components/dialogs/EmptyTrashDialog/index.js b/products/ASC.Files/Client/src/components/dialogs/EmptyTrashDialog/index.js index a58c027bd5..c651bb2d8c 100644 --- a/products/ASC.Files/Client/src/components/dialogs/EmptyTrashDialog/index.js +++ b/products/ASC.Files/Client/src/components/dialogs/EmptyTrashDialog/index.js @@ -163,22 +163,24 @@ const EmptyTrashDialog = (props) => ( ); -export default inject(({ initFilesStore, filesStore, uploadDataStore }) => { - const { isLoading } = initFilesStore; - const { secondaryProgressDataStore } = uploadDataStore; - const { fetchFiles, filter } = filesStore; - const { - setSecondaryProgressBarData, - clearSecondaryProgressData, - } = secondaryProgressDataStore; +export default inject( + ({ initFilesStore, filesStore, uploadDataStore, selectedFolderStore }) => { + const { isLoading } = initFilesStore; + const { secondaryProgressDataStore } = uploadDataStore; + const { fetchFiles, filter } = filesStore; + const { + setSecondaryProgressBarData, + clearSecondaryProgressData, + } = secondaryProgressDataStore; - return { - currentFolderId: filesStore.selectedFolderStore.id, - isLoading, - filter, + return { + currentFolderId: selectedFolderStore.id, + isLoading, + filter, - fetchFiles, - setSecondaryProgressBarData, - clearSecondaryProgressData, - }; -})(withRouter(observer(EmptyTrashDialog))); + fetchFiles, + setSecondaryProgressBarData, + clearSecondaryProgressData, + }; + } +)(withRouter(observer(EmptyTrashDialog))); diff --git a/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesRowContent.js b/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesRowContent.js index 8490a62c73..51230ad48e 100644 --- a/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesRowContent.js +++ b/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesRowContent.js @@ -357,7 +357,6 @@ class FilesRowContent extends React.PureComponent { selectedFolderPathParts, newItems, setNewRowItems, - //setUpdateTree, } = this.props; if (item.fileExst) { api.files @@ -368,7 +367,6 @@ class FilesRowContent extends React.PureComponent { (x) => x.id === selectedFolderPathParts[0] ); dataItem.newItems = newItems ? dataItem.newItems - 1 : 0; - //setUpdateTree(true); setTreeFolders(data); setNewRowItems([`${item.id}`]); }) @@ -730,6 +728,7 @@ export default inject( formatsStore, uploadDataStore, treeFoldersStore, + selectedFolderStore }, { item } ) => { @@ -751,7 +750,6 @@ export default inject( folders, fetchFiles, filter, - selectedFolderStore, setNewRowItems, newRowItems, createFile, diff --git a/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesTileContent.js b/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesTileContent.js index b9232d3620..7e7d5212b4 100644 --- a/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesTileContent.js +++ b/products/ASC.Files/Client/src/components/pages/Home/Section/Body/FilesTileContent.js @@ -418,7 +418,14 @@ class FilesTileContent extends React.PureComponent { export default inject( ( - { auth, initFilesStore, filesStore, formatsStore, treeFoldersStore }, + { + auth, + initFilesStore, + filesStore, + formatsStore, + treeFoldersStore, + selectedFolderStore, + }, { item } ) => { const { homepage, culture } = auth.settingsStore; @@ -461,11 +468,11 @@ export default inject( homepage, fileAction, folders, - rootFolderId: filesStore.selectedFolderStore.pathParts, - selectedFolderId: filesStore.selectedFolderStore.id, - selectedFolderPathParts: filesStore.selectedFolderStore.pathParts, - newItems: filesStore.selectedFolderStore.new, - parentFolder: filesStore.selectedFolderStore.parentId, + rootFolderId: selectedFolderStore.pathParts, + selectedFolderId: selectedFolderStore.id, + selectedFolderPathParts: selectedFolderStore.pathParts, + newItems: selectedFolderStore.new, + parentFolder: selectedFolderStore.parentId, isLoading, treeFolders, isTrashFolder: isRecycleBinFolder, diff --git a/products/ASC.Files/Client/src/components/pages/Home/Section/Body/index.js b/products/ASC.Files/Client/src/components/pages/Home/Section/Body/index.js index d6109d531b..f62b2a76ed 100644 --- a/products/ASC.Files/Client/src/components/pages/Home/Section/Body/index.js +++ b/products/ASC.Files/Client/src/components/pages/Home/Section/Body/index.js @@ -327,7 +327,6 @@ class SectionBodyContent extends React.Component { setTreeFolders, setIsLoading, fetchFiles, - //setUpdateTree, setAction, selection, } = this.props; @@ -347,7 +346,6 @@ class SectionBodyContent extends React.Component { const newTreeFolders = treeFolders; const folders = data.selectedFolder.folders; loopTreeFolders(path, newTreeFolders, folders, null, newItem); - //setUpdateTree(true); setTreeFolders(newTreeFolders); } }) @@ -422,7 +420,6 @@ class SectionBodyContent extends React.Component { t, setSecondaryProgressBarData, fetchFiles, - //setUpdateTree, } = this.props; api.files.getProgress().then((res) => { const deleteProgress = res.find((x) => x.id === id); @@ -451,7 +448,6 @@ class SectionBodyContent extends React.Component { const folders = data.selectedFolder.folders; const foldersCount = data.selectedFolder.foldersCount; loopTreeFolders(path, newTreeFolders, folders, foldersCount); - //setUpdateTree(true); setTreeFolders(newTreeFolders); } isFolder @@ -2034,6 +2030,7 @@ export default inject( uploadDataStore, dialogsStore, treeFoldersStore, + selectedFolderStore }) => { const { providers, capabilities } = settingsStore.thirdPartyStore; const { mediaViewersFormatsStore, iconFormatsStore } = formatsStore; @@ -2070,7 +2067,7 @@ export default inject( deselectFile, filter, fileActionStore, - selectedFolderStore, + addFileToRecentlyViewed, updateFile, currentFolderCount, diff --git a/products/ASC.Files/Client/src/components/pages/Home/Section/Filter/index.js b/products/ASC.Files/Client/src/components/pages/Home/Section/Filter/index.js index 8f55c52e2a..f05ea793d0 100644 --- a/products/ASC.Files/Client/src/components/pages/Home/Section/Filter/index.js +++ b/products/ASC.Files/Client/src/components/pages/Home/Section/Filter/index.js @@ -308,28 +308,30 @@ class SectionFilterContent extends React.Component { } } -export default inject(({ auth, initFilesStore, filesStore }) => { - const { setIsLoading, setViewAs, viewAs } = initFilesStore; - const { firstLoad, fetchFiles, filter, selectedFolderStore } = filesStore; +export default inject( + ({ auth, initFilesStore, filesStore, selectedFolderStore }) => { + const { setIsLoading, setViewAs, viewAs } = initFilesStore; + const { firstLoad, fetchFiles, filter } = filesStore; - const { user } = auth.userStore; - const { customNames, culture } = auth.settingsStore; - const language = (user && user.cultureName) || culture || "en-US"; + const { user } = auth.userStore; + const { customNames, culture } = auth.settingsStore; + const language = (user && user.cultureName) || culture || "en-US"; - return { - customNames, - user, - language, - firstLoad, - selectedFolderId: selectedFolderStore.id, - selectedItem: filter.selectedItem, - filter, - viewAs, + return { + customNames, + user, + language, + firstLoad, + selectedFolderId: selectedFolderStore.id, + selectedItem: filter.selectedItem, + filter, + viewAs, - setIsLoading, - fetchFiles, - setViewAs, - }; -})( + setIsLoading, + fetchFiles, + setViewAs, + }; + } +)( withRouter(withLayoutSize(withTranslation()(observer(SectionFilterContent)))) ); diff --git a/products/ASC.Files/Client/src/components/pages/Home/Section/Header/index.js b/products/ASC.Files/Client/src/components/pages/Home/Section/Header/index.js index 9146794dcf..795bba68f3 100644 --- a/products/ASC.Files/Client/src/components/pages/Home/Section/Header/index.js +++ b/products/ASC.Files/Client/src/components/pages/Home/Section/Header/index.js @@ -662,6 +662,7 @@ export default inject( uploadDataStore, dialogsStore, treeFoldersStore, + selectedFolderStore, }) => { const { setIsLoading } = initFilesStore; const { secondaryProgressDataStore } = uploadDataStore; @@ -670,7 +671,7 @@ export default inject( fileActionStore, fetchFiles, selection, - selectedFolderStore, + filter, canCreate, isHeaderVisible, diff --git a/products/ASC.Files/Client/src/components/pages/Home/Section/Paging/index.js b/products/ASC.Files/Client/src/components/pages/Home/Section/Paging/index.js index a4eabc608a..ceb92ff154 100644 --- a/products/ASC.Files/Client/src/components/pages/Home/Section/Paging/index.js +++ b/products/ASC.Files/Client/src/components/pages/Home/Section/Paging/index.js @@ -162,15 +162,9 @@ const SectionPagingContent = ({ ); }; -export default inject(({ initFilesStore, filesStore }) => { +export default inject(({ initFilesStore, filesStore, selectedFolderStore }) => { const { setIsLoading } = initFilesStore; - const { - files, - folders, - fetchFiles, - filter, - selectedFolderStore, - } = filesStore; + const { files, folders, fetchFiles, filter } = filesStore; return { files, diff --git a/products/ASC.Files/Client/src/components/pages/Home/index.js b/products/ASC.Files/Client/src/components/pages/Home/index.js index 75c0402931..0d68922caa 100644 --- a/products/ASC.Files/Client/src/components/pages/Home/index.js +++ b/products/ASC.Files/Client/src/components/pages/Home/index.js @@ -306,6 +306,7 @@ export default inject( uploadDataStore, dialogsStore, treeFoldersStore, + selectedFolderStore, }) => { const { dragging, @@ -353,7 +354,7 @@ export default inject( firstLoad, dragging, fileActionId: id, - currentFolderId: filesStore.selectedFolderStore.id, + currentFolderId: selectedFolderStore.id, isLoading, filter, viewAs, diff --git a/products/ASC.Files/Client/src/components/panels/NewFilesPanel/index.js b/products/ASC.Files/Client/src/components/panels/NewFilesPanel/index.js index d6e7932864..ae753b04e2 100644 --- a/products/ASC.Files/Client/src/components/panels/NewFilesPanel/index.js +++ b/products/ASC.Files/Client/src/components/panels/NewFilesPanel/index.js @@ -105,7 +105,6 @@ class NewFilesPanelComponent extends React.Component { api.files .markAsRead(folderIds, fileId) .then(() => { - //this.props.setUpdateTree(true); this.setNewFilesCount(folderId, false, item); this.onFilesClick(item); }) @@ -154,7 +153,6 @@ class NewFilesPanelComponent extends React.Component { setTreeFolders, folders, files, - //setUpdateTree, } = this.props; const data = treeFolders; @@ -203,7 +201,6 @@ class NewFilesPanelComponent extends React.Component { } } - //setUpdateTree(true); setTreeFolders(data); }; diff --git a/products/ASC.Files/Client/src/components/panels/OperationsPanel/index.js b/products/ASC.Files/Client/src/components/panels/OperationsPanel/index.js index ac07724f9f..d27823e711 100644 --- a/products/ASC.Files/Client/src/components/panels/OperationsPanel/index.js +++ b/products/ASC.Files/Client/src/components/panels/OperationsPanel/index.js @@ -195,12 +195,18 @@ const OperationsPanel = (props) => ( ); export default inject( - ({ auth, filesStore, uploadDataStore, treeFoldersStore }) => { + ({ + auth, + filesStore, + uploadDataStore, + treeFoldersStore, + selectedFolderStore, + }) => { const { secondaryProgressDataStore, itemOperationToFolder, } = uploadDataStore; - const { selection, selectedFolderStore, filter } = filesStore; + const { selection, filter } = filesStore; const { isRecycleBinFolder, operationsFolders } = treeFoldersStore; const { setSecondaryProgressBarData } = secondaryProgressDataStore; diff --git a/products/ASC.Files/Client/src/index.js b/products/ASC.Files/Client/src/index.js index b62d3758b8..f698721c9f 100644 --- a/products/ASC.Files/Client/src/index.js +++ b/products/ASC.Files/Client/src/index.js @@ -17,6 +17,7 @@ import versionHistoryStore from "./store/VersionHistoryStore"; import uploadDataStore from "./store/UploadDataStore"; import dialogsStore from "./store/DialogsStore"; import treeFoldersStore from "./store/TreeFoldersStore"; +import selectedFolderStore from "./store/SelectedFolderStore"; const { authStore } = commonStore; @@ -32,6 +33,7 @@ ReactDOM.render( uploadDataStore={uploadDataStore} dialogsStore={dialogsStore} treeFoldersStore={treeFoldersStore} + selectedFolderStore={selectedFolderStore} > diff --git a/products/ASC.Files/Client/src/store/FilesStore.js b/products/ASC.Files/Client/src/store/FilesStore.js index 8708fa9ad6..b042322c2e 100644 --- a/products/ASC.Files/Client/src/store/FilesStore.js +++ b/products/ASC.Files/Client/src/store/FilesStore.js @@ -3,7 +3,7 @@ import { api, constants, store, history } from "asc-web-common"; import axios from "axios"; import queryString from "query-string"; import FileActionStore from "./FileActionStore"; -import SelectedFolderStore from "./SelectedFolderStore"; +import selectedFolderStore from "./SelectedFolderStore"; import formatsStore from "./FormatsStore"; import treeFoldersStore from "./TreeFoldersStore"; import { createTreeFolders } from "../helpers/files-helpers"; @@ -49,7 +49,6 @@ const { class FilesStore { fileActionStore = null; - selectedFolderStore = null; firstLoad = true; files = []; @@ -62,7 +61,6 @@ class FilesStore { constructor() { makeObservable(this, { fileActionStore: observable, - selectedFolderStore: observable, firstLoad: observable, files: observable, @@ -114,7 +112,6 @@ class FilesStore { }); this.fileActionStore = new FileActionStore(); - this.selectedFolderStore = new SelectedFolderStore(); } setFirstLoad = (firstLoad) => { @@ -252,7 +249,7 @@ class FilesStore { this.fileActionStore.setAction({ type: null }); this.setSelected("close"); - this.selectedFolderStore.setSelectedFolder({ + selectedFolderStore.setSelectedFolder({ folders: [], ...privacyFolder, pathParts: privacyFolder.pathParts, @@ -282,7 +279,7 @@ class FilesStore { this.setSelected("close"); } - this.selectedFolderStore.setSelectedFolder({ + selectedFolderStore.setSelectedFolder({ folders: data.folders, ...data.current, pathParts: data.pathParts, @@ -290,7 +287,7 @@ class FilesStore { }); const selectedFolder = { - selectedFolder: { ...this.selectedFolderStore }, + selectedFolder: { ...selectedFolderStore }, }; return Promise.resolve(selectedFolder); }); @@ -318,7 +315,7 @@ class FilesStore { }; isCanShare = () => { - const folderType = this.selectedFolderStore.rootFolderType; + const folderType = selectedFolderStore.rootFolderType; const isVisitor = (userStore.user && userStore.user.isVisitor) || false; if (isVisitor) { @@ -353,7 +350,7 @@ class FilesStore { const isFavorite = item.fileStatus === 32; const isFullAccess = item.access < 2; const isThirdPartyFolder = - item.providerKey && this.selectedFolderStore.isRootFolder; + item.providerKey && selectedFolderStore.isRootFolder; if (item.id <= 0) return []; @@ -498,7 +495,7 @@ class FilesStore { }; getFilesCount = () => { - const { filesCount, foldersCount } = this.selectedFolderStore; + const { filesCount, foldersCount } = selectedFolderStore; return filesCount + this.folders ? this.folders.length : foldersCount; }; @@ -511,9 +508,7 @@ class FilesStore { get currentFilesCount() { const serviceFilesCount = this.getServiceFilesCount(); const filesCount = this.getFilesCount(); - return this.selectedFolderStore.providerItem - ? serviceFilesCount - : filesCount; + return selectedFolderStore.providerItem ? serviceFilesCount : filesCount; } get iconOfDraggedFile() { @@ -530,7 +525,7 @@ class FilesStore { } get canShareOwnerChange() { - const pathParts = this.selectedFolderStore.pathParts; + const pathParts = selectedFolderStore.pathParts; const userId = userStore.user.id; const commonFolder = treeFoldersStore.commonFolder; return ( @@ -561,14 +556,12 @@ class FilesStore { } get canCreate() { - switch (this.selectedFolderStore.rootFolderType) { + switch (selectedFolderStore.rootFolderType) { case FolderType.USER: return true; case FolderType.SHARE: - const canCreateInSharedFolder = this.selectedFolderStore.access === 1; - return ( - !this.selectedFolderStore.isRootFolder && canCreateInSharedFolder - ); + const canCreateInSharedFolder = selectedFolderStore.access === 1; + return !selectedFolderStore.isRootFolder && canCreateInSharedFolder; case FolderType.Privacy: return isDesktopClient && isEncryptionSupport; case FolderType.COMMON: @@ -588,7 +581,7 @@ class FilesStore { items.unshift({ id: -1, title: "", - parentId: this.selectedFolderStore.id, + parentId: selectedFolderStore.id, fileExst: this.fileActionStore.extension, icon, }); @@ -746,7 +739,7 @@ class FilesStore { } get userAccess() { - switch (this.selectedFolderStore.rootFolderType) { + switch (selectedFolderStore.rootFolderType) { case FolderType.USER: return true; case FolderType.SHARE: @@ -779,7 +772,7 @@ class FilesStore { get isThirdPartySelection() { const withProvider = this.selection.find((x) => !x.providerKey); - return !withProvider && this.selectedFolderStore.isRootFolder; + return !withProvider && selectedFolderStore.isRootFolder; } get isWebEditSelected() { @@ -995,7 +988,7 @@ class FilesStore { this.setFolders(favoritesFolder.folders); this.setFiles(favoritesFolder.files); - this.selectedFolderStore.setSelectedFolder({ + selectedFolderStore.setSelectedFolder({ folders: favoritesFolder.folders, ...favoritesFolder.current, pathParts: favoritesFolder.pathParts, diff --git a/products/ASC.Files/Client/src/store/SelectedFolderStore.js b/products/ASC.Files/Client/src/store/SelectedFolderStore.js index 1df299f045..860451ac05 100644 --- a/products/ASC.Files/Client/src/store/SelectedFolderStore.js +++ b/products/ASC.Files/Client/src/store/SelectedFolderStore.js @@ -57,9 +57,10 @@ class SelectedFolderStore { for (let key of selectedFolderItems) { if (key in this) { this[key] = selectedFolder[key]; + console.log(`${key}: ${selectedFolder[key]}`); } } }; } -export default SelectedFolderStore; +export default new SelectedFolderStore(); diff --git a/products/ASC.Files/Client/src/store/TreeFoldersStore.js b/products/ASC.Files/Client/src/store/TreeFoldersStore.js index b77ba5c787..5478760256 100644 --- a/products/ASC.Files/Client/src/store/TreeFoldersStore.js +++ b/products/ASC.Files/Client/src/store/TreeFoldersStore.js @@ -1,19 +1,15 @@ import { makeObservable, observable, computed, action } from "mobx"; import { api, constants } from "asc-web-common"; -import SelectedFolderStore from "./SelectedFolderStore"; +import selectedFolderStore from "./SelectedFolderStore"; const { FolderType } = constants; class TreeFoldersStore { - selectedFolderStore = null; - treeFolders = []; selectedTreeNode = []; expandedKeys = []; constructor() { makeObservable(this, { - selectedFolderStore: observable, - treeFolders: observable, selectedTreeNode: observable, expandedKeys: observable, @@ -44,8 +40,6 @@ class TreeFoldersStore { setTreeFolders: action, setExpandedKeys: action, }); - - this.selectedFolderStore = new SelectedFolderStore(); } fetchTreeFolders = async () => { @@ -129,46 +123,38 @@ class TreeFoldersStore { /////////////////////////////////////TODO: IS get isMyFolder() { - return this.myFolder && this.myFolder.id === this.selectedFolderStore.id; + return this.myFolder && this.myFolder.id === selectedFolderStore.id; } get isShareFolder() { - return ( - this.shareFolder && this.shareFolder.id === this.selectedFolderStore.id - ); + return this.shareFolder && this.shareFolder.id === selectedFolderStore.id; } get isFavoritesFolder() { return ( - this.favoritesFolder && - this.selectedFolderStore.id === this.favoritesFolder.id + this.favoritesFolder && selectedFolderStore.id === this.favoritesFolder.id ); } get isRecentFolder() { - return ( - this.recentFolder && this.selectedFolderStore.id === this.recentFolder.id - ); + return this.recentFolder && selectedFolderStore.id === this.recentFolder.id; } get isPrivacyFolder() { return ( this.privacyFolder && - this.privacyFolder.rootFolderType === - this.selectedFolderStore.rootFolderType + this.privacyFolder.rootFolderType === selectedFolderStore.rootFolderType ); } get isCommonFolder() { - return ( - this.commonFolder && this.commonFolder.id === this.selectedFolderStore.id - ); + return this.commonFolder && this.commonFolder.id === selectedFolderStore.id; } get isRecycleBinFolder() { return ( this.recycleBinFolder && - this.selectedFolderStore.id === this.recycleBinFolder.id + selectedFolderStore.id === this.recycleBinFolder.id ); } diff --git a/products/ASC.Files/Client/src/store/UploadDataStore.js b/products/ASC.Files/Client/src/store/UploadDataStore.js index d964c4abde..b70524c350 100644 --- a/products/ASC.Files/Client/src/store/UploadDataStore.js +++ b/products/ASC.Files/Client/src/store/UploadDataStore.js @@ -6,6 +6,7 @@ import SecondaryProgressDataStore from "./SecondaryProgressDataStore"; import PrimaryProgressDataStore from "./PrimaryProgressDataStore"; import formatsStore from "./FormatsStore"; import treeFoldersStore from "./TreeFoldersStore"; +import selectedFolderStore from "./SelectedFolderStore"; import filesStore from "./FilesStore"; import uniqueid from "lodash/uniqueId"; import throttle from "lodash/throttle"; @@ -14,7 +15,7 @@ import sumBy from "lodash/sumBy"; const { docserviceStore } = formatsStore; const { canConvert } = docserviceStore; const { setTreeFolders } = treeFoldersStore; -const { fetchFiles, selectedFolderStore } = filesStore; +const { fetchFiles } = filesStore; const chunkSize = 1024 * 1023; //~0.999mb @@ -361,7 +362,6 @@ class UploadDataStore { const foldersCount = data.selectedFolder.foldersCount; loopTreeFolders(path, newTreeFolders, folders, foldersCount); setTreeFolders(newTreeFolders); - //dispatch(setUpdateTree(true)); }); } else { return api.files @@ -373,7 +373,6 @@ class UploadDataStore { const foldersCount = data.count; loopTreeFolders(path, newTreeFolders, folders, foldersCount); setTreeFolders(newTreeFolders); - //dispatch(setUpdateTree(true)); }); } }; @@ -702,8 +701,8 @@ class UploadDataStore { let foldersCount = data.current.foldersCount; loopTreeFolders(path, newTreeFolders, folders, foldersCount); - if (!isCopy || destFolderId === this.selectedFolderStore.id) { - fetchFiles(this.selectedFolderStore.id, filesStore.filter) + if (!isCopy || destFolderId === selectedFolderStore.id) { + fetchFiles(selectedFolderStore.id, filesStore.filter) .then((data) => { if (!treeFoldersStore.isRecycleBinFolder) { newTreeFolders = treeFolders; @@ -716,7 +715,6 @@ class UploadDataStore { folders, foldersCount ); - //dispatch(setUpdateTree(true)); setTreeFolders(newTreeFolders); } }) @@ -741,7 +739,6 @@ class UploadDataStore { this.secondaryProgressDataStore.clearSecondaryProgressData(), TIMEOUT ); - //dispatch(setUpdateTree(true)); setTreeFolders(newTreeFolders); } });