Web: Client: Data import: import complete step was fixed

This commit is contained in:
Vladimir Khvan 2024-02-28 15:44:12 +05:00
parent 4d59aace2a
commit 07c10dfa33
7 changed files with 74 additions and 51 deletions

View File

@ -1,4 +1,4 @@
import { useState } from "react";
import { useState, useEffect } from "react";
import { inject, observer } from "mobx-react";
import { useNavigate } from "react-router-dom";
import styled from "styled-components";
@ -33,13 +33,17 @@ const ErrorText = styled(Text)`
const ImportCompleteStep = ({
t,
checkedUsers,
importResult,
getMigrationLog,
clearCheckedAccounts,
sendWelcomeLetter,
cancelMigration,
getMigrationStatus,
}) => {
const [isChecked, setIsChecked] = useState(false);
const [importResult, setImportResult] = useState({
succeedUsers: 0,
failedUsers: 0,
});
const navigate = useNavigate();
const onDownloadLog = async () => {
@ -67,10 +71,20 @@ const ImportCompleteStep = ({
if (isChecked) {
sendWelcomeLetter({ isSendWelcomeEmail: true });
}
navigate(-1);
clearCheckedAccounts();
cancelMigration();
setTimeout(() => navigate(-1), 1000);
};
useEffect(() => {
getMigrationStatus().then((res) =>
setImportResult({
succeedUsers: res.parseResult.succeedUsers,
failedUsers: res.parseResult.failedUsers,
}),
);
}, []);
return (
<>
<InfoText>
@ -119,18 +133,18 @@ const ImportCompleteStep = ({
export default inject(({ importAccountsStore }) => {
const {
checkedUsers,
importResult,
getMigrationLog,
clearCheckedAccounts,
sendWelcomeLetter,
cancelMigration,
getMigrationStatus,
} = importAccountsStore;
return {
checkedUsers,
importResult,
getMigrationLog,
clearCheckedAccounts,
sendWelcomeLetter,
cancelMigration,
getMigrationStatus,
};
})(observer(ImportCompleteStep));

View File

@ -24,7 +24,6 @@ const ImportProcessingStep = ({
proceedFileMigration,
cancelMigration,
getMigrationStatus,
setImportResult,
}) => {
// const [isVisible, setIsVisible] = useState(false);
const [percent, setPercent] = useState(0);
@ -39,10 +38,9 @@ const ImportProcessingStep = ({
setPercent(res.progress);
if (res.isCompleted) {
if (res.isCompleted || res.progress === 100) {
clearInterval(uploadInterval.current);
setIsLoading(false);
setImportResult(res.parseResult);
onNextStep();
}
}, 1000);
@ -65,6 +63,8 @@ const ImportProcessingStep = ({
useEffect(() => {
handleFileMigration();
return () => clearInterval(uploadInterval.current);
}, []);
return (
@ -95,7 +95,6 @@ export default inject(({ importAccountsStore }) => {
proceedFileMigration,
cancelMigration,
getMigrationStatus,
setImportResult,
} = importAccountsStore;
return {
@ -103,6 +102,5 @@ export default inject(({ importAccountsStore }) => {
proceedFileMigration,
cancelMigration,
getMigrationStatus,
setImportResult,
};
})(observer(ImportProcessingStep));

View File

@ -1,4 +1,4 @@
import { useState } from "react";
import { useState, useEffect } from "react";
import { inject, observer } from "mobx-react";
import { useNavigate } from "react-router-dom";
import styled from "styled-components";
@ -18,13 +18,17 @@ const ErrorText = styled(Text)`
const ImportCompleteStep = ({
t,
checkedUsers,
importResult,
getMigrationLog,
clearCheckedAccounts,
sendWelcomeLetter,
cancelMigration,
getMigrationStatus,
}) => {
const [isChecked, setIsChecked] = useState(false);
const [importResult, setImportResult] = useState({
succeedUsers: 0,
failedUsers: 0,
});
const navigate = useNavigate();
const onDownloadLog = async () => {
@ -52,10 +56,20 @@ const ImportCompleteStep = ({
if (isChecked) {
sendWelcomeLetter({ isSendWelcomeEmail: true });
}
navigate(-1);
clearCheckedAccounts();
cancelMigration();
setTimeout(() => navigate(-1), 1000);
};
useEffect(() => {
getMigrationStatus().then((res) =>
setImportResult({
succeedUsers: res.parseResult.succeedUsers,
failedUsers: res.parseResult.failedUsers,
}),
);
}, []);
return (
<Wrapper>
<Text fontSize="12px">
@ -102,18 +116,18 @@ const ImportCompleteStep = ({
export default inject(({ importAccountsStore }) => {
const {
checkedUsers,
importResult,
getMigrationLog,
clearCheckedAccounts,
sendWelcomeLetter,
cancelMigration,
getMigrationStatus,
} = importAccountsStore;
return {
checkedUsers,
importResult,
getMigrationLog,
clearCheckedAccounts,
sendWelcomeLetter,
cancelMigration,
getMigrationStatus,
};
})(observer(ImportCompleteStep));

View File

@ -15,7 +15,6 @@ const ImportProcessingStep = ({
proceedFileMigration,
cancelMigration,
getMigrationStatus,
setImportResult,
}) => {
// const [isVisible, setIsVisible] = useState(false);
const [percent, setPercent] = useState(0);
@ -30,10 +29,9 @@ const ImportProcessingStep = ({
setPercent(res.progress);
if (res.isCompleted) {
if (res.isCompleted || res.progress === 100) {
clearInterval(uploadInterval.current);
setIsLoading(false);
setImportResult(res.parseResult);
incrementStep();
}
}, 1000);
@ -56,6 +54,8 @@ const ImportProcessingStep = ({
useEffect(() => {
handleFileMigration();
return () => clearInterval(uploadInterval.current);
}, []);
return (
@ -87,7 +87,6 @@ export default inject(({ importAccountsStore }) => {
proceedFileMigration,
cancelMigration,
getMigrationStatus,
setImportResult,
} = importAccountsStore;
return {
@ -95,6 +94,5 @@ export default inject(({ importAccountsStore }) => {
proceedFileMigration,
cancelMigration,
getMigrationStatus,
setImportResult,
};
})(observer(ImportProcessingStep));

View File

@ -1,4 +1,4 @@
import { useState } from "react";
import { useState, useEffect } from "react";
import { inject, observer } from "mobx-react";
import { useNavigate } from "react-router-dom";
import styled from "styled-components";
@ -33,13 +33,17 @@ const ErrorText = styled(Text)`
const ImportCompleteStep = ({
t,
checkedUsers,
importResult,
getMigrationLog,
clearCheckedAccounts,
sendWelcomeLetter,
cancelMigration,
getMigrationStatus,
}) => {
const [isChecked, setIsChecked] = useState(false);
const [importResult, setImportResult] = useState({
succeedUsers: 0,
failedUsers: 0,
});
const navigate = useNavigate();
const onDownloadLog = async () => {
@ -71,6 +75,15 @@ const ImportCompleteStep = ({
clearCheckedAccounts();
};
useEffect(() => {
getMigrationStatus().then((res) =>
setImportResult({
succeedUsers: res.parseResult.succeedUsers,
failedUsers: res.parseResult.failedUsers,
}),
);
}, []);
return (
<>
<InfoText>
@ -119,18 +132,18 @@ const ImportCompleteStep = ({
export default inject(({ importAccountsStore }) => {
const {
checkedUsers,
importResult,
getMigrationLog,
clearCheckedAccounts,
sendWelcomeLetter,
cancelMigration,
getMigrationStatus,
} = importAccountsStore;
return {
checkedUsers,
importResult,
getMigrationLog,
clearCheckedAccounts,
sendWelcomeLetter,
cancelMigration,
getMigrationStatus,
};
})(observer(ImportCompleteStep));

View File

@ -24,7 +24,6 @@ const ImportProcessingStep = ({
proceedFileMigration,
cancelMigration,
getMigrationStatus,
setImportResult,
}) => {
// const [isVisible, setIsVisible] = useState(false);
const [percent, setPercent] = useState(0);
@ -39,10 +38,9 @@ const ImportProcessingStep = ({
setPercent(res.progress);
if (res.isCompleted) {
if (res.isCompleted || res.progress === 100) {
clearInterval(uploadInterval.current);
setIsLoading(false);
setImportResult(res.parseResult);
onNextStep();
}
}, 1000);
@ -65,6 +63,8 @@ const ImportProcessingStep = ({
useEffect(() => {
handleFileMigration();
return () => clearInterval(uploadInterval.current);
}, []);
return (
@ -95,7 +95,6 @@ export default inject(({ importAccountsStore }) => {
proceedFileMigration,
cancelMigration,
getMigrationStatus,
setImportResult,
} = importAccountsStore;
return {
@ -103,6 +102,5 @@ export default inject(({ importAccountsStore }) => {
proceedFileMigration,
cancelMigration,
getMigrationStatus,
setImportResult,
};
})(observer(ImportProcessingStep));

View File

@ -48,11 +48,6 @@ class ImportAccountsStore {
importProjectFiles: true,
};
importResult = {
succeedUsers: 0,
failedUsers: 0,
};
constructor() {
makeAutoObservable(this);
}
@ -79,13 +74,6 @@ class ImportAccountsStore {
);
}
setImportResult = (parseResult) => {
this.importResult = {
succeedUsers: parseResult.successedUsers,
failedUsers: parseResult.failedUsers,
};
};
setResultUsers = () => {
const checkedIds = this.checkedUsers.withoutEmail.map(
(checkedUser) => checkedUser.key,