Web: Restore: Refactoring.

This commit is contained in:
Tatiana Lopaeva 2022-08-01 14:51:53 +03:00
parent de9f0136b8
commit a22fb71edc
6 changed files with 57 additions and 53 deletions

View File

@ -20,8 +20,11 @@ import ThirdPartyResources from "./sub-components/ThirdPartyResourcesModule";
import ThirdPartyStorages from "./sub-components/ThirdPartyStoragesModule";
import LocalFile from "./sub-components/LocalFileModule";
import config from "../../../../../../../../package.json";
import { getThirdPartyCommonFolderTree } from "@appserver/common/api/files";
import { getBackupStorage } from "@appserver/common/api/settings";
import {
getBackupStorage,
getStorageRegions,
} from "@appserver/common/api/settings";
import { enableRestore } from "@appserver/common/api/portal";
import RestoreBackupLoader from "@appserver/common/components/Loaders/RestoreBackupLoader";
@ -67,25 +70,27 @@ class RestoreBackup extends React.Component {
const {
getProgress,
t,
setCommonThirdPartyList,
setThirdPartyStorage,
setStorageRegions,
} = this.props;
try {
getProgress(t);
const [
commonThirdPartyList,
//commonThirdPartyList,
backupStorage,
isEnableRestore,
storageRegions,
] = await Promise.all([
getThirdPartyCommonFolderTree(),
// getThirdPartyCommonFolderTree(),
getBackupStorage(),
enableRestore(),
getStorageRegions(),
]);
setThirdPartyStorage(backupStorage);
commonThirdPartyList && setCommonThirdPartyList(commonThirdPartyList);
setStorageRegions(storageRegions);
// commonThirdPartyList && setCommonThirdPartyList(commonThirdPartyList);
this.setState({
isInitialLoading: false,
@ -310,7 +315,7 @@ class RestoreBackup extends React.Component {
t,
history,
downloadingProgress,
commonThirdPartyList,
buttonSize,
theme,
} = this.props;
@ -341,7 +346,7 @@ class RestoreBackup extends React.Component {
? { onClick: this.onClickBackupList }
: {};
const isDisabledThirdParty = commonThirdPartyList?.length === 0;
// const isDisabledThirdParty = commonThirdPartyList?.length === 0;
const isMaxProgress = downloadingProgress === 100;
@ -368,7 +373,7 @@ class RestoreBackup extends React.Component {
name={"isCheckedThirdParty"}
key={2}
isChecked={isCheckedThirdParty}
isDisabled={isDisabledThirdParty || !isEnableRestore}
isDisabled={!isEnableRestore}
{...commonRadioButtonProps}
/>
@ -499,8 +504,7 @@ export default inject(({ auth, backup }) => {
downloadingProgress,
getProgress,
clearProgressInterval,
commonThirdPartyList,
setCommonThirdPartyList,
setStorageRegions,
setThirdPartyStorage,
isFormReady,
getStorageParams,
@ -509,16 +513,17 @@ export default inject(({ auth, backup }) => {
const buttonSize = isTabletView ? "normal" : "small";
return {
setStorageRegions,
setThirdPartyStorage,
buttonSize,
theme,
clearProgressInterval,
commonThirdPartyList,
downloadingProgress,
socketHelper,
setCommonThirdPartyList,
getProgress,
isFormReady,
getProgress,
getStorageParams,
buttonSize,
};
})(withTranslation(["Settings", "Common"])(observer(RestoreBackup)));

View File

@ -11,11 +11,11 @@ class ThirdPartyStoragesModule extends React.PureComponent {
constructor(props) {
super(props);
this.state = {
availableOptions: [],
availableStorage: "",
comboBoxOptions: [],
storagesInfo: {},
selectedStorage: "",
selectedId: "",
selectedStorageTitle: "",
selectedStorageId: "",
};
}
componentDidMount() {
@ -25,48 +25,47 @@ class ThirdPartyStoragesModule extends React.PureComponent {
const parameters = getOptions(thirdPartyStorage);
const {
options,
availableStorage,
selectedStorage,
selectedId,
comboBoxOptions,
storagesInfo,
selectedStorageTitle,
selectedStorageId,
} = parameters;
onSetStorageId && onSetStorageId(selectedId);
onSetStorageId && onSetStorageId(selectedStorageId);
this.setState({
availableOptions: options,
availableStorage,
comboBoxOptions,
storagesInfo,
selectedStorage,
selectedId,
selectedStorageTitle,
selectedStorageId,
});
}
}
onSelect = (option) => {
const selectedStorageId = option.key;
const { availableStorage } = this.state;
const { storagesInfo } = this.state;
const { onSetStorageId } = this.props;
const storage = availableStorage[selectedStorageId];
const storage = storagesInfo[selectedStorageId];
onSetStorageId && onSetStorageId(storage.id);
this.setState({
selectedStorage: storage.title,
selectedId: storage.id,
selectedStorageTitle: storage.title,
selectedStorageId: storage.id,
});
};
render() {
const {
availableOptions,
selectedStorage,
selectedId,
availableStorage,
comboBoxOptions,
selectedStorageTitle,
selectedStorageId,
storagesInfo,
} = this.state;
const { thirdPartyStorage } = this.props;
const commonProps = {
availableStorage,
selectedId,
selectedStorage: storagesInfo[selectedStorageId],
};
const { GoogleId, RackspaceId, SelectelId, AmazonId } = ThirdPartyStorages;
@ -74,8 +73,8 @@ class ThirdPartyStoragesModule extends React.PureComponent {
return (
<>
<ComboBox
options={availableOptions}
selectedOption={{ key: 0, label: selectedStorage }}
options={comboBoxOptions}
selectedOption={{ key: 0, label: selectedStorageTitle }}
onSelect={this.onSelect}
isDisabled={!!!thirdPartyStorage}
noBorder={false}
@ -85,16 +84,16 @@ class ThirdPartyStoragesModule extends React.PureComponent {
className="backup_combo"
/>
{selectedId === GoogleId && (
{selectedStorageId === GoogleId && (
<GoogleCloudStorage {...commonProps} {...this.props} />
)}
{selectedId === RackspaceId && (
{selectedStorageId === RackspaceId && (
<RackspaceStorage {...commonProps} {...this.props} />
)}
{selectedId === SelectelId && (
{selectedStorageId === SelectelId && (
<SelectelStorage {...commonProps} {...this.props} />
)}
{selectedId === AmazonId && (
{selectedStorageId === AmazonId && (
<AmazonStorage {...commonProps} {...this.props} />
)}
</>

View File

@ -15,12 +15,12 @@ class AmazonStorage extends React.PureComponent {
}
render() {
const { t, availableStorage, selectedId } = this.props;
const { t, selectedStorage } = this.props;
return (
<>
<AmazonSettings
selectedStorage={availableStorage[selectedId]}
selectedStorage={selectedStorage}
t={t}
isNeedFilePath
/>

View File

@ -15,13 +15,13 @@ class GoogleCloudStorage extends React.Component {
}
render() {
const { t, availableStorage, selectedId } = this.props;
const { t, selectedStorage } = this.props;
return (
<>
<GoogleCloudSettings
t={t}
selectedStorage={availableStorage[selectedId]}
selectedStorage={selectedStorage}
isNeedFilePath
/>
</>

View File

@ -15,13 +15,13 @@ class RackspaceStorage extends React.Component {
}
render() {
const { t, availableStorage, selectedId } = this.props;
const { t, selectedStorage } = this.props;
return (
<>
<RackspaceSettings
t={t}
selectedStorage={availableStorage[selectedId]}
selectedStorage={selectedStorage}
isNeedFilePath
/>
</>

View File

@ -15,14 +15,14 @@ class RackspaceStorage extends React.Component {
}
render() {
const { t, availableStorage, selectedId } = this.props;
const { t, selectedStorage } = this.props;
return (
<>
<SelectelSettings
t={t}
isNeedFilePath
selectedStorage={availableStorage[selectedId]}
selectedStorage={selectedStorage}
/>
</>
);