fix: change

This commit is contained in:
熊潇 2025-02-19 07:02:47 +08:00
parent 3df20a1ad8
commit ef6b2da614
5 changed files with 33 additions and 20 deletions

5
README.md Normal file
View File

@ -0,0 +1,5 @@
# 默认依赖模块
```sh
import { start } from 'https://kevisual.xiongxiao.me/user/tab/tab-leader.js'
```

View File

@ -5,8 +5,9 @@
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"build": "rm -rf dist && rollup -c", "build": "rm -rf dist && rollup -c",
"build:app": "npm run build && rsync dist/* ../deploy/dist",
"watch": "rollup -c -w", "watch": "rollup -c -w",
"prepub": "cp README.md dist",
"pub": "envision switchOrg user && envision deploy ./dist -k tab -v 0.0.1",
"clean": "rm -rf dist" "clean": "rm -rf dist"
}, },
"keywords": [], "keywords": [],
@ -20,6 +21,7 @@
"devDependencies": { "devDependencies": {
"@kevisual/router": "0.0.6-alpha-2", "@kevisual/router": "0.0.6-alpha-2",
"@kevisual/store": "0.0.1-alpha.7", "@kevisual/store": "0.0.1-alpha.7",
"@kevisual/system-lib": "^0.0.6",
"eventemitter3": "^5.0.1", "eventemitter3": "^5.0.1",
"nanoid": "^5.0.9", "nanoid": "^5.0.9",
"@rollup/plugin-commonjs": "^28.0.1", "@rollup/plugin-commonjs": "^28.0.1",

View File

@ -1,9 +0,0 @@
# 默认依赖模块
```sh
import { nanoid } from 'nanoid';
import { QueryRouterServer } from '@kevisual/router/browser';
import { useContextKey } from '@kevisual/store/context';
import { useConfigKey } from '@kevisual/store/config';
import { EventEmitter } from 'eventemitter3';
```

View File

@ -19,7 +19,8 @@ export default [
replace({ replace({
preventAssignment: true, // 必须设置为 true preventAssignment: true, // 必须设置为 true
delimiters: ['', ''], // 确保完全匹配 delimiters: ['', ''], // 确保完全匹配
"import { nanoid } from 'nanoid'": "import { nanoid } from 'https://cdn.jsdelivr.net/npm/nanoid@4.0.0/nanoid.min.js'", // "import { nanoid } from 'nanoid'": "import { nanoid } from 'https://cdn.jsdelivr.net/npm/nanoid@4.0.0/nanoid.min.js'",
'@kevisual/system-lib/dist': 'https://kevisual.xiongxiao.me/system/lib', // 将本地路径替换为远程 URL
}), }),
, ,
resolve({ browser: true }), resolve({ browser: true }),
@ -29,7 +30,7 @@ export default [
external: [ external: [
'nanoid', 'nanoid',
// //
'@kevisual/router/browser', // '@kevisual/router/browser',
], ],
}, },
{ {

View File

@ -1,6 +1,6 @@
import { QueryRouterServer } from '@kevisual/router/browser'; import { QueryRouterServer } from '@kevisual/system-lib/dist/router-browser.js';
import { useContextKey } from '@kevisual/store/config'; import { useContextKey } from '@kevisual/system-lib/dist/web-config.js';
import { useConfigKey } from '@kevisual/store/config'; import { useConfigKey } from '@kevisual/system-lib/dist/web-config.js';
import { EventEmitter } from 'eventemitter3'; import { EventEmitter } from 'eventemitter3';
export const emitter = useContextKey('emitter', () => { export const emitter = useContextKey('emitter', () => {
@ -15,7 +15,7 @@ export const app = useContextKey('app', () => {
const generateRandom = () => { const generateRandom = () => {
// return Math.random().toString(36).substring(8); // return Math.random().toString(36).substring(8);
return crypto.randomUUID(); return 'a-' + crypto.randomUUID();
}; };
export const tabId = useConfigKey('tabId', () => { export const tabId = useConfigKey('tabId', () => {
return generateRandom(); return generateRandom();
@ -29,6 +29,8 @@ export const tabConfig = useConfigKey('tabConfig', () => {
title: 'tab random' + random, title: 'tab random' + random,
description: 'tab config', description: 'tab config',
tabId: useConfigKey('tabId', () => {}), tabId: useConfigKey('tabId', () => {}),
type: 'single',
tabKey: 'default',
}; };
}); });
@ -115,7 +117,11 @@ app
description: '获取所有的打开的 tab', description: '获取所有的打开的 tab',
}) })
.define(async (ctx) => { .define(async (ctx) => {
ctx.body = Array.from(openTabs); ctx.body = {
openTabs: Array.from(openTabs),
tab: tabId,
tabConfig,
};
}) })
.addTo(app); .addTo(app);
@ -233,7 +239,7 @@ const channel = useContextKey('channel', () => {
}); });
channel.addEventListener('message', (event) => { channel.addEventListener('message', (event) => {
const { requestId, to, source, responseId } = event.data; const { requestId, to, source, tabKey, responseId } = event.data;
if (responseId && to === tabId) { if (responseId && to === tabId) {
// 有 id 的消息, 这是这个模块请求返回回来的消息,不被其他模块处理。 // 有 id 的消息, 这是这个模块请求返回回来的消息,不被其他模块处理。
emitter.emit(responseId, event.data); emitter.emit(responseId, event.data);
@ -241,7 +247,7 @@ channel.addEventListener('message', (event) => {
} }
// console.log('channel message', event.data); // console.log('channel message', event.data);
if (to === 'all' || to === tabId) { if (to === 'all' || to === tabId || tabKey === tabConfig.tabKey) {
const { path, key, payload, ...rest } = event.data; const { path, key, payload, ...rest } = event.data;
if (!path) { if (!path) {
return; return;
@ -424,8 +430,16 @@ const introduceMe = () => {
} }
}; };
export const start = () => { type StartOpts = {
config?: {
[key: string]: any;
};
};
export const start = (opts?: StartOpts) => {
init(); init();
if (opts?.config) {
Object.assign(tabConfig, opts?.config || {});
}
setTimeout(() => { setTimeout(() => {
if (meIsMax === '1') { if (meIsMax === '1') {
console.log('I am max', openTime); console.log('I am max', openTime);