Web: Client: Data Import: fix routing on the select file step

This commit is contained in:
Vladimir Khvan 2024-06-25 14:09:18 +05:00
parent 7097550c69
commit 959df75597
4 changed files with 35 additions and 4 deletions

View File

@ -126,9 +126,13 @@ const SelectFileStep = (props: SelectFileStepProps) => {
files,
setFiles,
multipleFileUploading,
migratingWorkspace,
setMigratingWorkspace,
} = props as InjectedSelectFileStepProps;
const [isSaveDisabled, setIsSaveDisabled] = useState(true);
const [isSaveDisabled, setIsSaveDisabled] = useState(
migratorName === migratingWorkspace,
);
const [progress, setProgress] = useState(0);
const [isInfiniteProgress, setIsInfiniteProgress] = useState(true);
@ -249,6 +253,7 @@ const SelectFileStep = (props: SelectFileStepProps) => {
setLoadingStatus("upload");
setFailTries(FAIL_TRIES);
setIsInfiniteProgress(true);
setMigratingWorkspace(migratorName);
onUploadFile(file);
};
@ -284,6 +289,7 @@ const SelectFileStep = (props: SelectFileStepProps) => {
setProgress(0);
setLoadingStatus("none");
clearInterval(uploadInterval.current);
setMigratingWorkspace("");
cancelMigration();
};
@ -310,7 +316,10 @@ const SelectFileStep = (props: SelectFileStepProps) => {
scale
onInput={onSelectFile}
className="upload-backup-input"
placeholder={(files && files.join(",")) || t("Settings:BackupFile")}
placeholder={
(migratingWorkspace === migratorName && files && files.join(",")) ||
t("Settings:BackupFile")
}
isDisabled={
fileLoadingStatus === "upload" || fileLoadingStatus === "proceed"
}
@ -376,7 +385,9 @@ const SelectFileStep = (props: SelectFileStepProps) => {
saveButtonLabel={t("Settings:UploadToServer")}
cancelButtonLabel={t("Common:Back")}
displaySettings
saveButtonDisabled={isSaveDisabled}
saveButtonDisabled={
migratingWorkspace !== migratorName || isSaveDisabled
}
showReminder
/>
) : (
@ -387,7 +398,9 @@ const SelectFileStep = (props: SelectFileStepProps) => {
saveButtonLabel={t("Settings:NextStep")}
cancelButtonLabel={t("Common:Back")}
displaySettings
saveButtonDisabled={isSaveDisabled}
saveButtonDisabled={
migratingWorkspace !== migratorName || isSaveDisabled
}
showReminder
/>
)}
@ -422,6 +435,8 @@ export default inject<TStore>(({ dialogsStore, importAccountsStore }) => {
files,
setFiles,
multipleFileUploading,
migratingWorkspace,
setMigratingWorkspace,
} = importAccountsStore;
const { cancelUploadDialogVisible, setCancelUploadDialogVisible } =
dialogsStore;
@ -441,5 +456,7 @@ export default inject<TStore>(({ dialogsStore, importAccountsStore }) => {
files,
setFiles,
multipleFileUploading,
migratingWorkspace,
setMigratingWorkspace,
};
})(observer(SelectFileStep));

View File

@ -53,6 +53,7 @@ const DataImport = (props: DataImportProps) => {
setFiles,
setIsMigrationInit,
setLoadingStatus,
setMigratingWorkspace,
} = props as InjectedDataImportProps;
const { t } = useTranslation(["Settings"]);
@ -77,6 +78,7 @@ const DataImport = (props: DataImportProps) => {
if (parseResult.operation === "parse" && isCompleted) {
setUsers(parseResult);
setWorkspace(parseResult.migratorName);
setMigratingWorkspace(parseResult.migratorName);
setFiles(parseResult.files);
setIsMigrationInit(true);
setLoadingStatus("done");
@ -85,6 +87,7 @@ const DataImport = (props: DataImportProps) => {
getMigrationStatus,
setUsers,
setWorkspace,
setMigratingWorkspace,
setFiles,
setIsMigrationInit,
setLoadingStatus,
@ -122,6 +125,7 @@ export default inject<TStore>(
setFiles,
setIsMigrationInit,
setLoadingStatus,
setMigratingWorkspace,
} = importAccountsStore;
const { setDocumentTitle } = authStore;
@ -142,6 +146,7 @@ export default inject<TStore>(
setFiles,
setIsMigrationInit,
setLoadingStatus,
setMigratingWorkspace,
};
},
)(observer(DataImport));

View File

@ -72,6 +72,8 @@ export interface InjectedSelectFileStepProps extends SelectFileStepProps {
files: TStore["importAccountsStore"]["files"];
setFiles: TStore["importAccountsStore"]["setFiles"];
multipleFileUploading: TStore["importAccountsStore"]["multipleFileUploading"];
migratingWorkspace: TStore["importAccountsStore"]["migratingWorkspace"];
setMigratingWorkspace: TStore["importAccountsStore"]["setMigratingWorkspace"];
}
export interface DataImportProps {}
@ -89,6 +91,7 @@ export interface InjectedDataImportProps extends DataImportProps {
setFiles: TStore["importAccountsStore"]["setFiles"];
setIsMigrationInit: TStore["importAccountsStore"]["setIsMigrationInit"];
setLoadingStatus: TStore["importAccountsStore"]["setLoadingStatus"];
setMigratingWorkspace: TStore["importAccountsStore"]["setMigratingWorkspace"];
}
export interface WorkspaceProps {}

View File

@ -96,6 +96,8 @@ class ImportAccountsStore {
workspace: TWorkspaceService | "" = "";
migratingWorkspace: TWorkspaceService | "" = "";
files: string[] = [];
importOptions = {
@ -152,6 +154,10 @@ class ImportAccountsStore {
this.workspace = workspace;
};
setMigratingWorkspace = (workspace: TWorkspaceService | "") => {
this.migratingWorkspace = workspace;
};
setFiles = (files: string[]) => {
this.files = files;
};