perf: axios default error interceptor allows you to customize error handling (#4283)
parent
cc678a2b51
commit
b3e3e05990
|
@ -75,7 +75,7 @@ const defaultPreferences: Preferences = {
|
||||||
tabbar: {
|
tabbar: {
|
||||||
dragable: true,
|
dragable: true,
|
||||||
enable: true,
|
enable: true,
|
||||||
height: 36,
|
height: 38,
|
||||||
keepAlive: true,
|
keepAlive: true,
|
||||||
persist: true,
|
persist: true,
|
||||||
showIcon: true,
|
showIcon: true,
|
||||||
|
|
|
@ -50,7 +50,7 @@ const props = withDefaults(defineProps<Props>(), {
|
||||||
sidebarWidth: 180,
|
sidebarWidth: 180,
|
||||||
sideCollapseWidth: 60,
|
sideCollapseWidth: 60,
|
||||||
tabbarEnable: true,
|
tabbarEnable: true,
|
||||||
tabbarHeight: 36,
|
tabbarHeight: 40,
|
||||||
zIndex: 200,
|
zIndex: 200,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -91,7 +91,7 @@ const tabsView = computed((): TabConfig[] => {
|
||||||
class="tabs-chrome__background absolute z-[-1] size-full px-[calc(var(--gap)-1px)] py-0 transition-opacity duration-150"
|
class="tabs-chrome__background absolute z-[-1] size-full px-[calc(var(--gap)-1px)] py-0 transition-opacity duration-150"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="tabs-chrome__background-content group-[.is-active]:bg-heavy dark:group-[.is-active]:bg-accent h-full rounded-tl-[var(--gap)] rounded-tr-[var(--gap)] duration-150"
|
class="tabs-chrome__background-content group-[.is-active]:bg-primary/15 dark:group-[.is-active]:bg-accent h-full rounded-tl-[var(--gap)] rounded-tr-[var(--gap)] duration-150"
|
||||||
></div>
|
></div>
|
||||||
<svg
|
<svg
|
||||||
class="tabs-chrome__background-before group-[.is-active]:fill-primary/15 dark:group-[.is-active]:fill-accent absolute bottom-0 left-[-1px] fill-transparent transition-all duration-150"
|
class="tabs-chrome__background-before group-[.is-active]:fill-primary/15 dark:group-[.is-active]:fill-accent absolute bottom-0 left-[-1px] fill-transparent transition-all duration-150"
|
||||||
|
@ -128,7 +128,7 @@ const tabsView = computed((): TabConfig[] => {
|
||||||
|
|
||||||
<!-- tab-item-main -->
|
<!-- tab-item-main -->
|
||||||
<div
|
<div
|
||||||
class="tabs-chrome__item-main group-[.is-active]:text-accent-foreground dark:group-[.is-active]:text-accent-foreground text-accent-foreground z-[2] mx-[calc(var(--gap)*2)] my-0 flex h-full items-center overflow-hidden rounded-tl-[5px] rounded-tr-[5px] pl-2 pr-4 duration-150"
|
class="tabs-chrome__item-main group-[.is-active]:text-primary dark:group-[.is-active]:text-accent-foreground text-accent-foreground z-[2] mx-[calc(var(--gap)*2)] my-0 flex h-full items-center overflow-hidden rounded-tl-[5px] rounded-tr-[5px] pl-2 pr-4 duration-150"
|
||||||
>
|
>
|
||||||
<VbenIcon
|
<VbenIcon
|
||||||
v-if="showIcon"
|
v-if="showIcon"
|
||||||
|
@ -168,7 +168,7 @@ const tabsView = computed((): TabConfig[] => {
|
||||||
@apply pb-[2px];
|
@apply pb-[2px];
|
||||||
|
|
||||||
&-content {
|
&-content {
|
||||||
@apply bg-accent-hover mx-[2px] rounded-md;
|
@apply bg-accent mx-[2px] rounded-md;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,7 +76,8 @@ function handleNotice(versionTag: string) {
|
||||||
ToastAction,
|
ToastAction,
|
||||||
{
|
{
|
||||||
altText: $t('common.refresh'),
|
altText: $t('common.refresh'),
|
||||||
class: 'bg-primary hover:bg-primary-hover mx-1',
|
class:
|
||||||
|
'bg-primary text-primary-foreground hover:bg-primary-hover mx-1',
|
||||||
onClick: () => {
|
onClick: () => {
|
||||||
lastVersionTag.value = versionTag;
|
lastVersionTag.value = versionTag;
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
|
|
|
@ -87,7 +87,7 @@ export const errorMessageResponseInterceptor = (
|
||||||
errMsg = $t('fallback.http.requestTimeout');
|
errMsg = $t('fallback.http.requestTimeout');
|
||||||
}
|
}
|
||||||
if (errMsg) {
|
if (errMsg) {
|
||||||
makeErrorMessage?.(errMsg);
|
makeErrorMessage?.(errMsg, error);
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ export const errorMessageResponseInterceptor = (
|
||||||
errorMessage = $t('fallback.http.internalServerError');
|
errorMessage = $t('fallback.http.internalServerError');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
makeErrorMessage?.(errorMessage);
|
makeErrorMessage?.(errorMessage, error);
|
||||||
return Promise.reject(error);
|
return Promise.reject(error);
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
|
@ -28,7 +28,7 @@ interface ResponseInterceptorConfig<T = any> {
|
||||||
rejected?: (error: any) => any;
|
rejected?: (error: any) => any;
|
||||||
}
|
}
|
||||||
|
|
||||||
type MakeErrorMessageFn = (message: string) => void;
|
type MakeErrorMessageFn = (message: string, error: any) => void;
|
||||||
|
|
||||||
interface HttpResponse<T = any> {
|
interface HttpResponse<T = any> {
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue