diff --git a/app/src/api/api.ts b/app/src/api/api.ts index fa706388..f75c5a57 100644 --- a/app/src/api/api.ts +++ b/app/src/api/api.ts @@ -7,7 +7,11 @@ import { } from '@/composables/useRequests' import { useSettings } from '@/composables/useSettings' import type { Obj } from '@/types/commons' -import { APIUnauthorizedError, type APIError } from './errors' +import { + APIBadRequestError, + APIUnauthorizedError, + type APIError, +} from './errors' import { getError, getResponseData, openWebSocket } from './handlers' export type RequestMethod = 'GET' | 'POST' | 'PUT' | 'DELETE' @@ -143,8 +147,13 @@ export default { if (!response.ok) { const errorData = await getResponseData(response) - endRequest({ request, success: false }) - throw getError(request, response, errorData) + const err = getError(request, response, errorData) + endRequest({ + request, + success: false, + isFormError: err instanceof APIBadRequestError, + }) + throw err } const responseData = await getResponseData(response) diff --git a/app/src/components/modals/ModalOverlay.vue b/app/src/components/modals/ModalOverlay.vue index 6beeed49..7630063e 100644 --- a/app/src/components/modals/ModalOverlay.vue +++ b/app/src/components/modals/ModalOverlay.vue @@ -30,6 +30,7 @@ defineSlots<{ no-close-on-backdrop no-close-on-esc :hide-footer="hideFooter" + no-fade >