diff --git a/package.json b/package.json index 97f5452..c37c3a2 100644 --- a/package.json +++ b/package.json @@ -18,7 +18,7 @@ "@ant-design/icons": "^5.5.1", "@icon-park/react": "^1.4.2", "@kevisual/codemirror": "^0.0.2", - "@kevisual/query": "^0.0.2", + "@kevisual/query": "^0.0.6", "@kevisual/ui": "^0.0.2", "@uiw/react-textarea-code-editor": "^3.0.2", "@xyflow/react": "^12.3.1", @@ -46,8 +46,8 @@ "@tailwindcss/typography": "^0.5.15", "@types/d3": "^7.4.3", "@types/lodash-es": "^4.17.12", - "@types/node": "^22.7.2", - "@types/react": "^18.3.9", + "@types/node": "^22.7.4", + "@types/react": "^18.3.10", "@types/react-dom": "^18.3.0", "@vitejs/plugin-react": "^4.3.1", "autoprefixer": "^10.4.20", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5298453..0bb9148 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -13,7 +13,7 @@ importers: version: 0.0.1-alpha.9(@emotion/css@11.13.0)(crypto-js@4.2.0)(eventemitter3@5.0.1) '@abearxiong/flows': specifier: 0.0.1-alpha.9 - version: 0.0.1-alpha.9(@xyflow/react@12.3.1(@types/react@18.3.9)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zustand@4.5.5(@types/react@18.3.9)(immer@10.1.1)(react@18.3.1)) + version: 0.0.1-alpha.9(@xyflow/react@12.3.1(@types/react@18.3.10)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zustand@4.5.5(@types/react@18.3.10)(immer@10.1.1)(react@18.3.1)) '@abearxiong/ui': specifier: 0.0.1-alpha.0 version: 0.0.1-alpha.0 @@ -27,8 +27,8 @@ importers: specifier: ^0.0.2 version: 0.0.2 '@kevisual/query': - specifier: ^0.0.2 - version: 0.0.2 + specifier: ^0.0.6 + version: 0.0.6 '@kevisual/ui': specifier: ^0.0.2 version: 0.0.2 @@ -37,7 +37,7 @@ importers: version: 3.0.2(@babel/runtime@7.25.6)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@xyflow/react': specifier: ^12.3.1 - version: 12.3.1(@types/react@18.3.9)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 12.3.1(@types/react@18.3.10)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) antd: specifier: ^5.21.1 version: 5.21.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -85,10 +85,10 @@ importers: version: 10.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) vite-plugin-tsconfig-paths: specifier: ^1.4.1 - version: 1.4.1(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.2)) + version: 1.4.1(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)) zustand: specifier: ^4.5.5 - version: 4.5.5(@types/react@18.3.9)(immer@10.1.1)(react@18.3.1) + version: 4.5.5(@types/react@18.3.10)(immer@10.1.1)(react@18.3.1) devDependencies: '@eslint/js': specifier: ^9.11.1 @@ -96,9 +96,6 @@ importers: '@tailwindcss/aspect-ratio': specifier: ^0.4.2 version: 0.4.2(tailwindcss@3.4.13) - '@tailwindcss/line-clamp': - specifier: ^0.4.4 - version: 0.4.4(tailwindcss@3.4.13) '@tailwindcss/typography': specifier: ^0.5.15 version: 0.5.15(tailwindcss@3.4.13) @@ -109,17 +106,17 @@ importers: specifier: ^4.17.12 version: 4.17.12 '@types/node': - specifier: ^22.7.2 - version: 22.7.2 + specifier: ^22.7.4 + version: 22.7.4 '@types/react': - specifier: ^18.3.9 - version: 18.3.9 + specifier: ^18.3.10 + version: 18.3.10 '@types/react-dom': specifier: ^18.3.0 version: 18.3.0 '@vitejs/plugin-react': specifier: ^4.3.1 - version: 4.3.1(vite@5.4.8(@types/node@22.7.2)) + version: 4.3.1(vite@5.4.8(@types/node@22.7.4)) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.4.47) @@ -158,7 +155,7 @@ importers: version: 8.7.0(eslint@9.11.1(jiti@1.21.6))(typescript@5.6.2) vite: specifier: ^5.4.8 - version: 5.4.8(@types/node@22.7.2) + version: 5.4.8(@types/node@22.7.4) packages: @@ -574,8 +571,8 @@ packages: '@kevisual/codemirror@0.0.2': resolution: {integrity: sha512-z+hINypSarYBj+13en8+Hj/CqTAMVIYN3Rs0ICHRzbikvrDnsnT4ohpnFgcbFPQ/zX3E1mS9ANbx4jGSJEHaPQ==} - '@kevisual/query@0.0.2': - resolution: {integrity: sha512-xE2KhqlF2WDJ8Mt/AKKYnKeBPGxlbNhh7uXSxhO1/Rz95SVfJm0QF6pCEiWi/OHQ93gxIt5qUNEGp9avXHsWxw==} + '@kevisual/query@0.0.6': + resolution: {integrity: sha512-J+poZwIx4r956GDN5zI8zM0YyyxJqARZVVOFYplRThaQLqpsbRNYJoYiT5DekvBftxtFjs/OlI3RzcHDOv3Fjw==} '@kevisual/ui@0.0.2': resolution: {integrity: sha512-MDZDQTrYToLyj3WhiVJQLJ0PUHiN4D0Z5yJIyGzzPewPGpP2xwNgKO1BFX37J95cGZckzCdZwTKP0XKAOq0QtA==} @@ -749,11 +746,6 @@ packages: peerDependencies: tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' - '@tailwindcss/line-clamp@0.4.4': - resolution: {integrity: sha512-5U6SY5z8N42VtrCrKlsTAA35gy2VSyYtHWCsg1H87NU1SXnEfekTVlrga9fzUDrrHcGi2Lb5KenUWb4lRQT5/g==} - peerDependencies: - tailwindcss: '>=2.0.0 || >=3.0.0 || >=3.0.0-alpha.1' - '@tailwindcss/typography@0.5.15': resolution: {integrity: sha512-AqhlCXl+8grUz8uqExv5OTtgpjuVIwFTSXTrh8y9/pw6q2ek7fJ+Y8ZEVw7EB2DCcuCOtEjf9w3+J3rzts01uA==} peerDependencies: @@ -891,8 +883,8 @@ packages: '@types/mdast@4.0.4': resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} - '@types/node@22.7.2': - resolution: {integrity: sha512-866lXSrpGpgyHBZUa2m9YNWqHDjjM0aBTJlNtYaGEw4rqY/dcD7deRVTbBBAJelfA7oaGDbNftXF/TL/A6RgoA==} + '@types/node@22.7.4': + resolution: {integrity: sha512-y+NPi1rFzDs1NdQHHToqeiX2TIS79SWEAw9GYhkkx8bD0ChpfqC+n2j5OXOCpzfojBEBt6DnEnnG9MY0zk1XLg==} '@types/parse-json@4.0.2': resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==} @@ -906,8 +898,8 @@ packages: '@types/react-dom@18.3.0': resolution: {integrity: sha512-EhwApuTmMBmXuFOikhQLIBUn6uFg81SwLMOAUgodJF14SOBOCMdU04gDoYi0WOJJHD144TL32z4yDqCW3dnkQg==} - '@types/react@18.3.9': - resolution: {integrity: sha512-+BpAVyTpJkNWWSSnaLBk6ePpHLOGJKnEQNbINNovPWzvEUyAe3e+/d494QdEh71RekM/qV7lw6jzf1HGrJyAtQ==} + '@types/react@18.3.10': + resolution: {integrity: sha512-02sAAlBnP39JgXwkAq3PeU9DVaaGpZyF3MGcC0MKgQVkZor5IiiDAipVaxQHtDJAmO4GIy/rVBy/LzVj76Cyqg==} '@types/unist@2.0.11': resolution: {integrity: sha512-CmBKiL6NNo/OqgmMn95Fk9Whlp2mtvIv+KNpQKN2F4SjvrEesubTRWGYSg+BnWZOnlCaSTU1sMpsBOzgbYhnsA==} @@ -2621,17 +2613,17 @@ snapshots: eventemitter3: 5.0.1 nanoid: 5.0.7 - '@abearxiong/flows@0.0.1-alpha.9(@xyflow/react@12.3.1(@types/react@18.3.9)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zustand@4.5.5(@types/react@18.3.9)(immer@10.1.1)(react@18.3.1))': + '@abearxiong/flows@0.0.1-alpha.9(@xyflow/react@12.3.1(@types/react@18.3.10)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(zustand@4.5.5(@types/react@18.3.10)(immer@10.1.1)(react@18.3.1))': dependencies: '@ant-design/icons': 5.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@icon-park/react': 1.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@xyflow/react': 12.3.1(@types/react@18.3.9)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@xyflow/react': 12.3.1(@types/react@18.3.10)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) clsx: 2.1.1 eventemitter3: 5.0.1 immer: 10.1.1 react: 18.3.1 react-tooltip: 5.28.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - zustand: 4.5.5(@types/react@18.3.9)(immer@10.1.1)(react@18.3.1) + zustand: 4.5.5(@types/react@18.3.10)(immer@10.1.1)(react@18.3.1) transitivePeerDependencies: - react-dom @@ -3037,7 +3029,7 @@ snapshots: '@kevisual/codemirror@0.0.2': {} - '@kevisual/query@0.0.2': {} + '@kevisual/query@0.0.6': {} '@kevisual/ui@0.0.2': dependencies: @@ -3183,10 +3175,6 @@ snapshots: dependencies: tailwindcss: 3.4.13 - '@tailwindcss/line-clamp@0.4.4(tailwindcss@3.4.13)': - dependencies: - tailwindcss: 3.4.13 - '@tailwindcss/typography@0.5.15(tailwindcss@3.4.13)': dependencies: lodash.castarray: 4.4.0 @@ -3359,7 +3347,7 @@ snapshots: dependencies: '@types/unist': 3.0.3 - '@types/node@22.7.2': + '@types/node@22.7.4': dependencies: undici-types: 6.19.8 @@ -3371,9 +3359,9 @@ snapshots: '@types/react-dom@18.3.0': dependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.10 - '@types/react@18.3.9': + '@types/react@18.3.10': dependencies: '@types/prop-types': 15.7.13 csstype: 3.1.3 @@ -3473,24 +3461,24 @@ snapshots: '@ungap/structured-clone@1.2.0': {} - '@vitejs/plugin-react@4.3.1(vite@5.4.8(@types/node@22.7.2))': + '@vitejs/plugin-react@4.3.1(vite@5.4.8(@types/node@22.7.4))': dependencies: '@babel/core': 7.25.2 '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.2) '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.2) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.8(@types/node@22.7.2) + vite: 5.4.8(@types/node@22.7.4) transitivePeerDependencies: - supports-color - '@xyflow/react@12.3.1(@types/react@18.3.9)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@xyflow/react@12.3.1(@types/react@18.3.10)(immer@10.1.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@xyflow/system': 0.0.43 classcat: 5.0.5 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - zustand: 4.5.5(@types/react@18.3.9)(immer@10.1.1)(react@18.3.1) + zustand: 4.5.5(@types/react@18.3.10)(immer@10.1.1)(react@18.3.1) transitivePeerDependencies: - '@types/react' - immer @@ -5275,20 +5263,20 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-plugin-tsconfig-paths@1.4.1(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.2)): + vite-plugin-tsconfig-paths@1.4.1(typescript@5.6.2)(vite@5.4.8(@types/node@22.7.4)): dependencies: typescript-paths: 1.5.1(typescript@5.6.2) - vite: 5.4.8(@types/node@22.7.2) + vite: 5.4.8(@types/node@22.7.4) transitivePeerDependencies: - typescript - vite@5.4.8(@types/node@22.7.2): + vite@5.4.8(@types/node@22.7.4): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.22.0 optionalDependencies: - '@types/node': 22.7.2 + '@types/node': 22.7.4 fsevents: 2.3.3 web-namespaces@2.0.1: {} @@ -5319,11 +5307,11 @@ snapshots: yocto-queue@0.1.0: {} - zustand@4.5.5(@types/react@18.3.9)(immer@10.1.1)(react@18.3.1): + zustand@4.5.5(@types/react@18.3.10)(immer@10.1.1)(react@18.3.1): dependencies: use-sync-external-store: 1.2.2(react@18.3.1) optionalDependencies: - '@types/react': 18.3.9 + '@types/react': 18.3.10 immer: 10.1.1 react: 18.3.1 diff --git a/src/modules/query.ts b/src/modules/query.ts index a12bf2e..27de975 100644 --- a/src/modules/query.ts +++ b/src/modules/query.ts @@ -1,9 +1,28 @@ -import { Query } from '@kevisual/query'; -export const query = new Query({}); -export const request = query.post; -export const ws = new WebSocket('ws://localhost:6010/api/router'); +import { Query, QueryClient } from '@kevisual/query'; +import { QueryWs } from '@kevisual/query/ws'; +import { modal } from './redirect-to-login'; import { create } from 'zustand'; - +export const query = new Query(); +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) => { + if (res.code === 401 || res.code === 403) { + modal.setOpen(true); + } + return res; +}; +export const request = query.post; +export const queryWs = new QueryWs({ + url: '/api/router', +}); +export const ws = queryWs.ws; type Store = { connected: boolean; setConnected: (connected: boolean) => void; @@ -18,11 +37,6 @@ ws.onopen = () => { console.log('Connected to WebSocket server'); useStore.getState().setConnected(true); }; -// 接收服务器的消息 -ws.onmessage = (event) => { - // console.log('Received message:', event.data); - // const message = JSON.parse(event.data); -}; // 处理 WebSocket 关闭 ws.onclose = () => { diff --git a/src/modules/redirect-to-login.ts b/src/modules/redirect-to-login.ts new file mode 100644 index 0000000..d1a1ce7 --- /dev/null +++ b/src/modules/redirect-to-login.ts @@ -0,0 +1,26 @@ +import { DialogModal } from '@kevisual/ui'; +import '@kevisual/ui/dist/index.css'; + +const content = document.createElement('div'); +content.innerHTML = ` +
+`; +export const modal = DialogModal.render(content, { + id: 'redirect-to-login', + contentStyle: { + width: 'unset', + }, + dialogTitleStyle: { + display: 'none', + padding: '0', + }, + dialogContentStyle: { + padding: '0', + }, + mask: true, + open: false, +}); diff --git a/src/pages/ai-agent/store/index.ts b/src/pages/ai-agent/store/index.ts index ee46b0c..faf88f9 100644 --- a/src/pages/ai-agent/store/index.ts +++ b/src/pages/ai-agent/store/index.ts @@ -34,7 +34,7 @@ export const useAgentStore = create