From 66f0ed2370090f4bc2b13ebf361073743e1fb756 Mon Sep 17 00:00:00 2001 From: axolotle Date: Wed, 21 Aug 2024 18:33:23 +0200 Subject: [PATCH] fix: waiting modal flickering when quick response or error --- app/src/api/api.ts | 15 ++++++++++++--- app/src/components/modals/ModalOverlay.vue | 1 + app/src/components/modals/ModalWaiting.vue | 2 +- app/src/composables/useRequests.ts | 15 ++++++++++++--- 4 files changed, 26 insertions(+), 7 deletions(-) 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 >