From 965153850c5122eb94f01710fdf8c22bf1ae2eed Mon Sep 17 00:00:00 2001 From: Tatiana Lopaeva Date: Mon, 11 Oct 2021 09:38:08 +0300 Subject: [PATCH] Web: Files: SelectFolderInput/SelectFileInput: Extended the component by adding a reset function to default values. --- .../panels/SelectFolderDialog/index.js | 71 ++++++++++++++++++- .../panels/SelectFolderInput/index.js | 21 +----- 2 files changed, 70 insertions(+), 22 deletions(-) diff --git a/products/ASC.Files/Client/src/components/panels/SelectFolderDialog/index.js b/products/ASC.Files/Client/src/components/panels/SelectFolderDialog/index.js index 8b57ffee7f..4993f87575 100644 --- a/products/ASC.Files/Client/src/components/panels/SelectFolderDialog/index.js +++ b/products/ASC.Files/Client/src/components/panels/SelectFolderDialog/index.js @@ -71,13 +71,17 @@ class SelectFolderModalDialog extends React.Component { } componentDidUpdate(prevProps) { - const { storeFolderId, canCreate, showButtons } = this.props; + const { storeFolderId, canCreate, showButtons, isReset } = this.props; if (showButtons && storeFolderId !== prevProps.storeFolderId) { this.setState({ canCreate: canCreate, isLoading: false, }); } + + if (isReset && isReset !== prevProps.isReset) { + this.onResetInfo(); + } } trySwitch = async () => { const { @@ -347,9 +351,18 @@ class SelectFolderModalDialog extends React.Component { }; onSelect = async (folder) => { - const { onSelectFolder, onClose, showButtons, onSetFullPath } = this.props; - const { folderId } = this.state; + const { + onSelectFolder, + onClose, + showButtons, + onSetFullPath, + onSetLoadingData, + onSetLoadingInput, + } = this.props; + const { folderId } = this.state; + onSetLoadingData && onSetLoadingData(true); + onSetLoadingInput && onSetLoadingInput(true); let requests = []; if (isArrayEqual([folder[0]], [folderId])) { @@ -414,6 +427,57 @@ class SelectFolderModalDialog extends React.Component { onSave && onSave(e, folderId); onClose && onClose(); }; + + onResetInfo = async () => { + //debugger; + const { id, foldersType, onSelectFolder, onSetFullPath } = this.props; + switch (foldersType) { + case "common": + try { + if (!id) { + folderList = await SelectFolderDialog.getCommonFolders(); + } + + onSelectFolder && onSelectFolder(`${id ? id : folderList[0].id}`); + + this.setState({ + folderId: `${id ? id : folderList[0].id}`, + }); + + onSetFullPath(""); + + this.loadersCompletes(); + } catch (err) { + console.error(err); + this.loadersCompletes(); + } + + break; + + case "third-party": + try { + if (!id) { + folderList = await SelectFolderDialog.getCommonThirdPartyList(); + } + + onSelectFolder && onSelectFolder(`${id ? id : folderList[0].id}`); + + this.setState({ + folderId: `${id ? id : folderList[0].id}`, + }); + + onSetFullPath(""); + + this.loadersCompletes(); + } catch (err) { + console.error(err); + + this.loadersCompletes(); + } + break; + } + }; + render() { const { t, @@ -622,6 +686,7 @@ class SelectFolderDialog extends React.Component { } return newArray; }; + render() { return ( diff --git a/products/ASC.Files/Client/src/components/panels/SelectFolderInput/index.js b/products/ASC.Files/Client/src/components/panels/SelectFolderInput/index.js index f0d33ed887..06e2a4e84c 100644 --- a/products/ASC.Files/Client/src/components/panels/SelectFolderInput/index.js +++ b/products/ASC.Files/Client/src/components/panels/SelectFolderInput/index.js @@ -33,25 +33,6 @@ class SelectFolderInputBody extends React.PureComponent { setFirstLoad(false); } - componentDidUpdate(prevProps) { - const { isSetDefaultFolderPath, folderPath } = this.props; - - if ( - isSetDefaultFolderPath && - isSetDefaultFolderPath !== prevProps.isSetDefaultFolderPath - ) { - this.setState({ - fullFolderPath: this.state.fullFolderPathDefault, - }); - } - if (folderPath !== prevProps.folderPath) { - this.setState({ - fullFolderPath: folderPath, - fullFolderPathDefault: folderPath, - }); - } - } - onSetFullPath = (pathName) => { this.setState({ fullFolderPath: pathName, @@ -98,6 +79,7 @@ class SelectFolderInputBody extends React.PureComponent { footer, fontSizeInput, maxInputWidth, + isReset, } = this.props; const { isLoading, baseFolderPath, fullFolderPath } = this.state; @@ -138,6 +120,7 @@ class SelectFolderInputBody extends React.PureComponent { header={header} headerName={headerName} footer={footer} + isReset={isReset} /> );