feat: enhance afterResponse handling for 401 status and ensure async logout

This commit is contained in:
2026-02-22 04:06:11 +08:00
parent 66ee0d7f60
commit 984f39bf3c

View File

@@ -1,22 +1,23 @@
import { Query } from '@kevisual/query'; import { Query, DataOpts } from '@kevisual/query';
import { QueryLoginBrowser } from '@kevisual/api/query-login' import { QueryLoginBrowser } from '@kevisual/api/query-login'
import { useContextKey } from '@kevisual/context'; import { useContextKey } from '@kevisual/context';
export const query = useContextKey('query', new Query({ export const query = useContextKey('query', new Query({
url: '/api/router', url: '/api/router',
})); }));
query.afterResponse = async (response, ctx) => { const afterResponse: DataOpts['afterResponse'] = async (response, ctx) => {
if (response.code === 401) { if (response.code === 401) {
queryLogin.logout(); await queryLogin.logout();
setTimeout(() => { location.reload() }, 2000); setTimeout(() => { location.reload() }, 2000);
} }
return response; return response;
} }
query.after(afterResponse);
export const queryClient = useContextKey('queryClient', new Query({ export const queryClient = useContextKey('queryClient', new Query({
url: '/client/router', url: '/client/router',
})); }));
queryClient.after(afterResponse);
export const queryLogin = useContextKey('queryLogin', new QueryLoginBrowser({ export const queryLogin = useContextKey('queryLogin', new QueryLoginBrowser({
query: query query: query
})); }));