diff --git a/apps/app/src/lib/axios.ts b/apps/app/src/lib/axios.ts index c8660f8f..f561c12a 100644 --- a/apps/app/src/lib/axios.ts +++ b/apps/app/src/lib/axios.ts @@ -49,7 +49,7 @@ apiClient.interceptors.response.use( return response }, - error => { + async error => { if (import.meta.env.DEV) console.error(`❌ ${error.response?.status} ${error.config?.url}`, error.response?.data) @@ -58,23 +58,21 @@ apiClient.interceptors.response.use( // Handle impersonation session expiry if (status === 403 && error.response?.data?.impersonation_ended) { - void import('@/stores/useImpersonationStore').then(({ useImpersonationStore }) => { - const impersonationStore = useImpersonationStore() + const { useImpersonationStore } = await import('@/stores/useImpersonationStore') + const impersonationStore = useImpersonationStore() - impersonationStore.clearState() - window.location.href = '/platform' - }) + impersonationStore.clearState() + window.location.href = '/platform' - return Promise.reject(error) + throw error } if (status === 401) { // Lazy import to avoid circular dependency - void import('@/stores/useAuthStore').then(({ useAuthStore }) => { - const authStore = useAuthStore() - if (authStore.isInitialized) - authStore.handleUnauthorized() - }) + const { useAuthStore } = await import('@/stores/useAuthStore') + const authStore = useAuthStore() + if (authStore.isInitialized) + authStore.handleUnauthorized() } else if (status === 403) { notificationStore.show('You don\'t have permission for this action.', 'error') @@ -99,7 +97,7 @@ apiClient.interceptors.response.use( notificationStore.show('Unable to connect to the server. Check your internet connection.', 'error') } - return Promise.reject(error) + throw error }, )