From 16c2d0ac929a736caf8a44457c0ceeb5dd84b27c Mon Sep 17 00:00:00 2001 From: Timofey Boyko Date: Thu, 29 Jun 2023 17:12:41 +0300 Subject: [PATCH] Web:Client: fix restore backup file input --- .../FilesSelector/FilesSelector.types.ts | 6 +++++- .../src/components/FilesSelector/index.tsx | 18 +++++++++++++++++- .../components/panels/SelectFileInput/index.js | 7 +++++-- .../backup/restore-backup/index.js | 12 +++++++++--- 4 files changed, 36 insertions(+), 7 deletions(-) diff --git a/packages/client/src/components/FilesSelector/FilesSelector.types.ts b/packages/client/src/components/FilesSelector/FilesSelector.types.ts index 09eb2b8539..88baccdf90 100644 --- a/packages/client/src/components/FilesSelector/FilesSelector.types.ts +++ b/packages/client/src/components/FilesSelector/FilesSelector.types.ts @@ -136,7 +136,11 @@ export type FilesSelectorProps = { fileTitle: string, openNewTab: boolean ) => void; - onSelectFile?: (fileInfo: { id: string | number; title: string }) => void; + onSelectFile?: (fileInfo: { + id: string | number; + title: string; + path?: string[]; + }) => void; withFooterInput?: boolean; withFooterCheckbox?: boolean; diff --git a/packages/client/src/components/FilesSelector/index.tsx b/packages/client/src/components/FilesSelector/index.tsx index 02caa80f4d..77be1d7119 100644 --- a/packages/client/src/components/FilesSelector/index.tsx +++ b/packages/client/src/components/FilesSelector/index.tsx @@ -100,6 +100,7 @@ const FilesSelector = ({ const [selectedFileInfo, setSelectedFileInfo] = React.useState<{ id: number | string; title: string; + path?: string[]; } | null>(null); const [total, setTotal] = React.useState(0); @@ -357,7 +358,22 @@ const FilesSelector = ({ selectedItemId && onSave(null, selectedItemId, fileName, isChecked); onSelectTreeNode && onSelectTreeNode(selectedTreeNode); - onSelectFile && selectedFileInfo && onSelectFile(selectedFileInfo); + + const info: { + id: string | number; + title: string; + path?: string[]; + } = { + id: selectedFileInfo?.id || "", + title: selectedFileInfo?.title || "", + path: [], + }; + + breadCrumbs.forEach((item, index) => { + if (index !== 0 && info.path) info.path.push(item.label); + }); + + onSelectFile && selectedFileInfo && onSelectFile(info); !withoutImmediatelyClose && onCloseAction(); } }; diff --git a/packages/client/src/components/panels/SelectFileInput/index.js b/packages/client/src/components/panels/SelectFileInput/index.js index 6b2ae02a56..448f0bd1d1 100644 --- a/packages/client/src/components/panels/SelectFileInput/index.js +++ b/packages/client/src/components/panels/SelectFileInput/index.js @@ -72,10 +72,13 @@ SelectFileInput.defaultProps = { }; export default inject( - ({ clientLoadingStore, treeFoldersStore, selectFileDialogStore }) => { + ( + { clientLoadingStore, treeFoldersStore, selectFileDialogStore }, + { fileName: fileNameProps } + ) => { const { setFirstLoad } = clientLoadingStore; const { folderId, setFolderId, setFile, fileInfo } = selectFileDialogStore; - const fileName = fileInfo?.title; + const fileName = fileInfo?.title || fileNameProps; const { setExpandedPanelKeys } = treeFoldersStore; return { setFirstLoad, diff --git a/packages/client/src/pages/PortalSettings/categories/data-management/backup/restore-backup/index.js b/packages/client/src/pages/PortalSettings/categories/data-management/backup/restore-backup/index.js index e4c23721a8..b640ea8944 100644 --- a/packages/client/src/pages/PortalSettings/categories/data-management/backup/restore-backup/index.js +++ b/packages/client/src/pages/PortalSettings/categories/data-management/backup/restore-backup/index.js @@ -59,6 +59,7 @@ const RestoreBackup = (props) => { useState(false); const [isVisibleSelectFileDialog, setIsVisibleSelectFileDialog] = useState(false); + const [path, setPath] = useState(""); const startRestoreBackup = useCallback(async () => { try { @@ -149,7 +150,7 @@ const RestoreBackup = (props) => { onClick={onChangeRadioButton} selected={radioButtonState} spacing="16px" - isDisabled={!isEnableRestore} + // isDisabled={!isEnableRestore} /> ); @@ -160,12 +161,17 @@ const RestoreBackup = (props) => { {radioButtonState === BACKUP_ROOM && ( setRestoreResource(file.id)} + onSelectFile={(file) => { + const newPath = file.path.join("/"); + setPath(`${newPath}/${file.title}`); + setRestoreResource(file.id); + }} /> )} {radioButtonState === DISK_SPACE && (