Form/Documents: show http error after upload document
This commit is contained in:
parent
54df128e56
commit
4733f2bb61
@ -86,7 +86,7 @@ export async function getDocuments({ pageUrlParams }: Input) {
|
|||||||
.then((res) => res);
|
.then((res) => res);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function uploadDocument({
|
export function uploadDocument({
|
||||||
pageUrlParams,
|
pageUrlParams,
|
||||||
document,
|
document,
|
||||||
formData,
|
formData,
|
||||||
@ -100,5 +100,15 @@ export async function uploadDocument({
|
|||||||
return fetch(urls.URL_IUS + url, {
|
return fetch(urls.URL_IUS + url, {
|
||||||
body: formData,
|
body: formData,
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
});
|
})
|
||||||
|
.then((res) => {
|
||||||
|
if (res.ok) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return res.json();
|
||||||
|
})
|
||||||
|
.catch((error) => {
|
||||||
|
throw error as t.HttpError;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
@ -9,6 +9,7 @@ import { pick } from 'radash';
|
|||||||
import { useCallback, useContext } from 'react';
|
import { useCallback, useContext } from 'react';
|
||||||
|
|
||||||
const ERROR_UPLOAD_DOCUMENT = 'Произошла ошибка при загрузке документов';
|
const ERROR_UPLOAD_DOCUMENT = 'Произошла ошибка при загрузке документов';
|
||||||
|
const SUCCESS_UPLOAD_DOCUMENTS = 'Файлы успешно загружены';
|
||||||
|
|
||||||
export function Buttons() {
|
export function Buttons() {
|
||||||
const { resetValidation } = useFormStore();
|
const { resetValidation } = useFormStore();
|
||||||
@ -30,17 +31,31 @@ export function Buttons() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
return Promise.all(uploadFiles)
|
return Promise.all(uploadFiles)
|
||||||
.then(() => {
|
.then(async (res) => {
|
||||||
setFormState({ status: 'success' });
|
const errors = res.filter((x) => typeof x !== 'boolean') as HttpError[];
|
||||||
setTimeout(() => {
|
|
||||||
window.location.reload();
|
if (!errors.length) {
|
||||||
}, 500);
|
setFormState({
|
||||||
|
status: 'success',
|
||||||
|
text: SUCCESS_UPLOAD_DOCUMENTS,
|
||||||
|
});
|
||||||
|
|
||||||
|
setTimeout(() => {
|
||||||
|
window.location.reload();
|
||||||
|
}, 500);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const error = errors.find((x) => x.errors.length)?.errors.at(0) || ERROR_UPLOAD_DOCUMENT;
|
||||||
|
|
||||||
|
setFormState({ status: 'error', text: error });
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
const _error = error as HttpError;
|
setFormState({
|
||||||
const text = _error?.errors?.at(0) || _error.title || ERROR_UPLOAD_DOCUMENT;
|
status: 'error',
|
||||||
|
text: error ? JSON.stringify(error) : ERROR_UPLOAD_DOCUMENT,
|
||||||
setFormState({ status: 'error', text });
|
});
|
||||||
});
|
});
|
||||||
}, [formFiles, pageUrlParams, resetValidation, setFormState]);
|
}, [formFiles, pageUrlParams, resetValidation, setFormState]);
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user