@zat-design/sisyphus-react 4.5.6 → 4.5.7-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -98,23 +98,21 @@ yarn test
98
98
  yarn test:coverage # 带覆盖率
99
99
  ```
100
100
 
101
- ### 组件库打包发布
101
+ ### 三包打包发布
102
102
 
103
103
  ```bash
104
- # 1. 构建(生成 es/lib/dist 目录)
105
- yarn build
104
+ # 日常 beta:要求根版本含预发布标识,如 4.5.7-beta.2
105
+ yarn release:beta
106
106
 
107
- # 2. 发布到 npm
108
- yarn release # 正式版
109
- yarn release:beta # beta 版本
110
- ```
111
-
112
- 2. 执行发布(使用域账号登录):
107
+ # 周五正式版:要求根版本不含预发布标识,如 4.5.7
108
+ yarn release
113
109
 
114
- ```bash
115
- npm publish
110
+ # 校验、构建、跑完组件/MCP/Scene 测试并预览 pack,不发布
111
+ yarn release:check
116
112
  ```
117
113
 
114
+ 发布前只需手工修改根 `package.json` 的 `version`。命令会同步 MCP、Scene、文档和契约版本,完成构建、全量测试、校验与打包,再按组件库 → MCP → Scene 发布。安装可继续使用 npmmirror,发布固定走 `https://registry.npmjs.org/`。npm 的浏览器登录/2FA 提示保持原样;中途失败后重跑同一命令,会跳过已经存在的同版本包并继续。
115
+
118
116
  ## 技术栈
119
117
 
120
118
  - React 18.3+ / React 19
@@ -66,6 +66,14 @@ const ProLayout = props => {
66
66
  const setTabsBarElRef = useCallback(el => setTabsState({
67
67
  tabsBarEl: el
68
68
  }), []);
69
+ // TabsManager 会在 effect 中调用这两个回调;保持引用稳定,避免父组件每次
70
+ // render 都让 effect 重新执行并再次 setState,形成无限更新循环。
71
+ const handleTabsChange = useCallback(v => setTabsState({
72
+ hasTabs: v
73
+ }), []);
74
+ const handleIframePureChange = useCallback(v => setTabsState({
75
+ isIframePure: v
76
+ }), []);
69
77
 
70
78
  // 仅 tabs 模式需要感知滚动位置(用于控制右上角圆弧伪元素的显隐)
71
79
  // 非 tabs 模式传 null,useScroll 不挂载监听器
@@ -150,12 +158,8 @@ const ProLayout = props => {
150
158
  dataSource: menuDataSource,
151
159
  originalOnMenuClick: onMenuClick,
152
160
  tabsBarContainer: tabsBarEl,
153
- onTabsChange: v => setTabsState({
154
- hasTabs: v
155
- }),
156
- onIframePureChange: v => setTabsState({
157
- isIframePure: v
158
- }),
161
+ onTabsChange: handleTabsChange,
162
+ onIframePureChange: handleIframePureChange,
159
163
  children: children
160
164
  });
161
165
  };
package/package.json CHANGED
@@ -1,10 +1,15 @@
1
1
  {
2
2
  "name": "@zat-design/sisyphus-react",
3
- "version": "4.5.6",
3
+ "version": "4.5.7-beta.2",
4
4
  "license": "MIT",
5
+ "publishConfig": {
6
+ "access": "public",
7
+ "registry": "https://registry.npmjs.org/"
8
+ },
5
9
  "files": [
6
10
  "es",
7
- "dist",
11
+ "dist/*.css",
12
+ "dist/*.js",
8
13
  "README.md"
9
14
  ],
10
15
  "main": "es/index.js",
@@ -60,6 +65,9 @@
60
65
  "build": "father build && npm run build:types && mv dist/index.min.css dist/index.esm.css && mv dist/less.min.css dist/less.esm.css && npm run build:ai-meta",
61
66
  "build:types": "tsc -p tsconfig.build.json",
62
67
  "build:ai-meta": "node ./scripts/build-ai-meta.mjs",
68
+ "check:ai-meta": "npm run build:ai-meta && cd packages/sisyphus-react-mcp && npm run check",
69
+ "sync:ai-version": "node ./scripts/sync-ai-version.mjs --write",
70
+ "check:ai-contract": "node ./scripts/sync-ai-version.mjs --check && node ./scripts/check-ai-docs.mjs && node --test ./scripts/tests/*.test.mjs",
63
71
  "docs": "cross-env NODE_OPTIONS=\"--openssl-legacy-provider\" dumi build",
64
72
  "docs:deploy": "gh-pages -d docs-dist",
65
73
  "lint": "npm run lint:js && npm run lint:style && npm run lint:prettier",
@@ -74,12 +82,9 @@
74
82
  "lint:style": "stylelint --fix \"src/**/*.less\"",
75
83
  "prepare": "husky && patch-package",
76
84
  "prettier": "prettier --write '**/*.{js,jsx,tsx,ts,less,md,json}'",
77
- "pack:main": "npm pack --dry-run",
78
- "pack:mcp": "npm run build:ai-meta && cd packages/sisyphus-react-mcp && npm pack --dry-run",
79
- "release": "yarn build && npm publish",
80
- "release:mcp": "npm run build:ai-meta && cd packages/sisyphus-react-mcp && npm publish",
81
- "release:scene": "cd sisyphus-agent/sisyphus-scene && npm publish --access public",
82
- "release:beta": "yarn build && npm publish --tag=beta",
85
+ "release": "node ./scripts/release.mjs --stable",
86
+ "release:beta": "node ./scripts/release.mjs --beta",
87
+ "release:check": "node ./scripts/release.mjs --check",
83
88
  "start": "cross-env NODE_OPTIONS=\"--openssl-legacy-provider\" dumi dev",
84
89
  "test": "umi-test",
85
90
  "test:coverage": "umi-test --coverage",