perf: 优化以前代码

This commit is contained in:
2025-03-22 14:36:33 +08:00
parent 2ee8ec7a29
commit 063837350b
7 changed files with 50 additions and 64 deletions

View File

@@ -1,14 +1,14 @@
import { QueryClient } from '@kevisual/query';
import { create } from 'zustand';
import { QueryLogin } from '@kevisual/query-login';
import { QueryLoginBrowser } from '@kevisual/query-login';
import { toastLogin } from '@kevisual/resources/pages/message/ToastLogin.tsx';
export const query = new QueryClient();
export const query = new QueryClient({
io: true,
});
/**
* 登录查询
*/
export const queryLogin = new QueryLogin({
query,
export const queryLogin = new QueryLoginBrowser({
query: query as any,
});
// @ts-ignore
if (window.context) {
@@ -20,51 +20,28 @@ if (window.context) {
queryLogin,
};
}
// 在请求之前如果stop了
query.beforeRequest = async (config) => {
if (config.headers) {
const token = localStorage.getItem('token');
if (token) {
config.headers['Authorization'] = 'Bearer ' + token;
}
}
return config;
};
query.afterResponse = async (res, ctx) => {
if (res?.code === 401) {
if (query?.stop) {
return { code: 500, success: false, message: '登录已过期' };
}
query.stop = true;
const queryLoginRes = await queryLogin.afterCheck401ToRefreshToken(res, ctx);
query.stop = false;
if (queryLoginRes.code === 401) {
const newRes = await queryLogin.run401Action(res, ctx, {
afterAlso401: () => {
toastLogin();
}
return queryLoginRes;
}
},
});
return res as any;
return newRes as any;
};
export const request = query.post;
export const ws = query.qws?.ws || new WebSocket(query.qws?.url);
type Store = {
connected: boolean;
setConnected: (connected: boolean) => void;
};
export const useStore = create<Store>((set) => ({
connected: false,
setConnected: (connected) => set({ connected }),
}));
export const ws = query.qws?.ws;
// 当连接成功时
ws.onopen = () => {
console.log('Connected to WebSocket server');
useStore.getState().setConnected(true);
};
// query.qws.ws.onopen = () => {
// console.log('Connected to WebSocket server');
// };
// 处理 WebSocket 关闭
ws.onclose = () => {
console.log('Disconnected from WebSocket server');
};
// // 处理 WebSocket 关闭
// query.qws.ws.onclose = () => {
// console.log('Disconnected from WebSocket server');
// };
query.qws.listenConnect(() => {
console.log('Connected to WebSocket server');
});