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);
|
||||
}
|
||||
|
||||
export async function uploadDocument({
|
||||
export function uploadDocument({
|
||||
pageUrlParams,
|
||||
document,
|
||||
formData,
|
||||
@ -100,5 +100,15 @@ export async function uploadDocument({
|
||||
return fetch(urls.URL_IUS + url, {
|
||||
body: formData,
|
||||
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';
|
||||
|
||||
const ERROR_UPLOAD_DOCUMENT = 'Произошла ошибка при загрузке документов';
|
||||
const SUCCESS_UPLOAD_DOCUMENTS = 'Файлы успешно загружены';
|
||||
|
||||
export function Buttons() {
|
||||
const { resetValidation } = useFormStore();
|
||||
@ -30,17 +31,31 @@ export function Buttons() {
|
||||
});
|
||||
|
||||
return Promise.all(uploadFiles)
|
||||
.then(() => {
|
||||
setFormState({ status: 'success' });
|
||||
setTimeout(() => {
|
||||
window.location.reload();
|
||||
}, 500);
|
||||
.then(async (res) => {
|
||||
const errors = res.filter((x) => typeof x !== 'boolean') as HttpError[];
|
||||
|
||||
if (!errors.length) {
|
||||
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) => {
|
||||
const _error = error as HttpError;
|
||||
const text = _error?.errors?.at(0) || _error.title || ERROR_UPLOAD_DOCUMENT;
|
||||
|
||||
setFormState({ status: 'error', text });
|
||||
setFormState({
|
||||
status: 'error',
|
||||
text: error ? JSON.stringify(error) : ERROR_UPLOAD_DOCUMENT,
|
||||
});
|
||||
});
|
||||
}, [formFiles, pageUrlParams, resetValidation, setFormState]);
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user