Web: Client: Data Import: ignore migration request if chunkSize was already set

This commit is contained in:
Vladimir Khvan 2024-07-04 13:37:00 +05:00
parent 33a908700a
commit 69920f3b9e
2 changed files with 27 additions and 13 deletions

View File

@ -252,6 +252,7 @@ const SelectFileStep = (props: SelectFileStepProps) => {
setChunk, setChunk,
startChunk, startChunk,
setChunkSize, setChunkSize,
chunkSize,
); );
} else { } else {
setFiles([file.name]); setFiles([file.name]);
@ -262,6 +263,7 @@ const SelectFileStep = (props: SelectFileStepProps) => {
setChunk, setChunk,
startChunk, startChunk,
setChunkSize, setChunkSize,
chunkSize,
); );
} }

View File

@ -335,6 +335,7 @@ class ImportAccountsStore {
setChunk: React.Dispatch<React.SetStateAction<number>>, setChunk: React.Dispatch<React.SetStateAction<number>>,
startChunk: number, startChunk: number,
setChunkSize: React.Dispatch<React.SetStateAction<number>>, setChunkSize: React.Dispatch<React.SetStateAction<number>>,
chunkSize: number,
) => { ) => {
let chunk = 0; let chunk = 0;
try { try {
@ -344,17 +345,22 @@ class ImportAccountsStore {
); );
const requestsDataArray: { formData: FormData; fileName: string }[] = []; const requestsDataArray: { formData: FormData; fileName: string }[] = [];
let chunkUploadSize = 0;
if (chunkSize) {
chunkUploadSize = chunkSize;
} else {
const res: { data: { ChunkSize: number } } = await axios.post( const res: { data: { ChunkSize: number } } = await axios.post(
`${location}?Init=${startChunk === 0}`, `${location}?Init=${startChunk === 0}`,
); );
if (!res.data.ChunkSize) return; chunkUploadSize = res.data.ChunkSize;
const chunkUploadSize = res.data.ChunkSize;
setChunkSize(chunkUploadSize); setChunkSize(chunkUploadSize);
}
if (isAbort!.current) return; if (!chunkUploadSize) return;
if (isAbort.current) return;
const chunksNumber = files const chunksNumber = files
.map((file) => Math.ceil(file.size / chunkUploadSize)) .map((file) => Math.ceil(file.size / chunkUploadSize))
@ -402,6 +408,7 @@ class ImportAccountsStore {
setChunk: React.Dispatch<React.SetStateAction<number>>, setChunk: React.Dispatch<React.SetStateAction<number>>,
startChunk: number, startChunk: number,
setChunkSize: React.Dispatch<React.SetStateAction<number>>, setChunkSize: React.Dispatch<React.SetStateAction<number>>,
chunkSize: number,
) => { ) => {
let chunk = 0; let chunk = 0;
try { try {
@ -410,15 +417,20 @@ class ImportAccountsStore {
"migrationFileUpload.ashx", "migrationFileUpload.ashx",
); );
let chunkUploadSize = 0;
if (chunkSize) {
chunkUploadSize = chunkSize;
} else {
const res: { data: { ChunkSize: number } } = await axios.post( const res: { data: { ChunkSize: number } } = await axios.post(
`${location}?Init=${startChunk === 0}`, `${location}?Init=${startChunk === 0}`,
); );
if (!res.data.ChunkSize) return; chunkUploadSize = res.data.ChunkSize;
const chunkUploadSize = res.data.ChunkSize;
setChunkSize(chunkUploadSize); setChunkSize(chunkUploadSize);
}
if (!chunkUploadSize) return;
const requestsDataArray = []; const requestsDataArray = [];