@abtnode/ux 1.17.5 → 1.17.6-beta-20251216-223535-283b9ffe

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.
@@ -11,6 +11,9 @@ const OPERATION_ROLES = {
11
11
  default: 'admin,owner'
12
12
  };
13
13
 
14
+ // 全局验证锁,用于防止并发请求时弹出多个验证对话框
15
+ let verifyPromise = null;
16
+
14
17
  /**
15
18
  * 判断是否需要角色检查
16
19
  * @param {boolean} inService - 是否为service端请求
@@ -155,7 +158,15 @@ export function createProxyClient({
155
158
  needVerifyAccess
156
159
  });
157
160
  if (needVerifyAccess) {
158
- return new Promise((resolve, reject) => {
161
+ // 如果已有验证正在进行,等待其完成后直接执行请求
162
+ if (verifyPromise) {
163
+ return verifyPromise.then(
164
+ // eslint-disable-next-line prefer-spread
165
+ () => target[prop].apply(target, args), err => Promise.reject(err));
166
+ }
167
+
168
+ // 创建新的验证 Promise 并存储
169
+ verifyPromise = new Promise((resolve, reject) => {
159
170
  connectApi.open({
160
171
  locale,
161
172
  action: 'verify-elevated',
@@ -173,16 +184,16 @@ export function createProxyClient({
173
184
  success: t('login.verify.success')
174
185
  },
175
186
  onSuccess: (result, decrypt = x => x) => {
187
+ // sessionToken 是全局状态,只需设置一次
176
188
  if (result.sessionToken) {
177
189
  setSessionToken(decrypt(result.sessionToken));
178
190
  setRefreshToken(decrypt(result.refreshToken));
179
191
  }
180
- setTimeout(() => {
181
- // eslint-disable-next-line prefer-spread
182
- resolve(target[prop].apply(target, args));
183
- }, 50);
192
+ verifyPromise = null; // 清除锁
193
+ resolve();
184
194
  },
185
195
  onClose: () => {
196
+ verifyPromise = null; // 清除锁
186
197
  reject(new Error(t('login.verify.abort')));
187
198
  connectApi.close();
188
199
  },
@@ -199,6 +210,11 @@ export function createProxyClient({
199
210
  })
200
211
  });
201
212
  });
213
+
214
+ // 验证完成后执行当前请求
215
+ return verifyPromise.then(
216
+ // eslint-disable-next-line prefer-spread
217
+ () => target[prop].apply(target, args), err => Promise.reject(err));
202
218
  }
203
219
  }
204
220
 
@@ -144,7 +144,7 @@ export default {
144
144
  community: '社群 URL',
145
145
  complete: '完成',
146
146
  componentBasicInfo: 'Blocklet 基本資訊',
147
- components: 'Blocklet 管理器',
147
+ components: 'Blocklet 管理',
148
148
  config: '配置',
149
149
  configuration: '配置',
150
150
  appearance: '外觀',
package/lib/locales/zh.js CHANGED
@@ -157,7 +157,7 @@ export default {
157
157
  community: '社区 URL',
158
158
  complete: '完成',
159
159
  componentBasicInfo: 'Blocklet 基础信息',
160
- components: 'Blocklet 管理器',
160
+ components: 'Blocklet 管理',
161
161
  config: '配置',
162
162
  configuration: '配置',
163
163
  appearance: '外观',
@@ -158,7 +158,7 @@ const Div = styled.div`
158
158
  overflow: hidden;
159
159
  text-overflow: ellipsis;
160
160
  display: -webkit-box;
161
- -webkit-line-clamp: 1;
161
+ -webkit-line-clamp: 2;
162
162
  -webkit-box-orient: vertical;
163
163
  font-weight: bold;
164
164
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abtnode/ux",
3
- "version": "1.17.5",
3
+ "version": "1.17.6-beta-20251216-223535-283b9ffe",
4
4
  "description": "UX components shared across abtnode packages",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -23,33 +23,33 @@
23
23
  "author": "linchen <linchen1987@foxmail.com> (http://github.com/linchen1987)",
24
24
  "license": "Apache-2.0",
25
25
  "dependencies": {
26
- "@abtnode/auth": "1.17.5",
27
- "@abtnode/constant": "1.17.5",
28
- "@abtnode/docker-utils": "1.17.5",
29
- "@abtnode/util": "1.17.5",
26
+ "@abtnode/auth": "1.17.6-beta-20251216-223535-283b9ffe",
27
+ "@abtnode/constant": "1.17.6-beta-20251216-223535-283b9ffe",
28
+ "@abtnode/docker-utils": "1.17.6-beta-20251216-223535-283b9ffe",
29
+ "@abtnode/util": "1.17.6-beta-20251216-223535-283b9ffe",
30
30
  "@ahooksjs/use-url-state": "^3.5.1",
31
- "@arcblock/did": "^1.27.14",
32
- "@arcblock/did-connect-react": "^3.2.13",
33
- "@arcblock/did-ext": "^1.27.14",
31
+ "@arcblock/did": "^1.27.15",
32
+ "@arcblock/did-connect-react": "^3.2.14",
33
+ "@arcblock/did-ext": "^1.27.15",
34
34
  "@arcblock/did-motif": "^1.1.14",
35
- "@arcblock/icons": "^3.2.13",
36
- "@arcblock/nft-display": "^3.2.13",
37
- "@arcblock/react-hooks": "^3.2.13",
38
- "@arcblock/terminal": "^3.2.13",
39
- "@arcblock/ux": "^3.2.13",
40
- "@arcblock/validator": "^1.27.14",
41
- "@blocklet/aigne-hub": "^0.6.26",
42
- "@blocklet/constant": "1.17.5",
43
- "@blocklet/did-domain-react": "^0.6.12",
44
- "@blocklet/did-space-react": "^1.2.9",
45
- "@blocklet/error": "^0.3.4",
46
- "@blocklet/js-sdk": "1.17.5",
47
- "@blocklet/launcher-layout": "^3.2.13",
48
- "@blocklet/list": "^0.18.8",
49
- "@blocklet/meta": "1.17.5",
50
- "@blocklet/theme": "^3.2.13",
51
- "@blocklet/ui-react": "^3.2.13",
52
- "@blocklet/uploader": "^0.3.14",
35
+ "@arcblock/icons": "^3.2.14",
36
+ "@arcblock/nft-display": "^3.2.14",
37
+ "@arcblock/react-hooks": "^3.2.14",
38
+ "@arcblock/terminal": "^3.2.14",
39
+ "@arcblock/ux": "^3.2.14",
40
+ "@arcblock/validator": "^1.27.15",
41
+ "@blocklet/aigne-hub": "^0.6.27",
42
+ "@blocklet/constant": "1.17.6-beta-20251216-223535-283b9ffe",
43
+ "@blocklet/did-domain-react": "^0.6.13",
44
+ "@blocklet/did-space-react": "^1.2.10",
45
+ "@blocklet/error": "^0.3.5",
46
+ "@blocklet/js-sdk": "1.17.6-beta-20251216-223535-283b9ffe",
47
+ "@blocklet/launcher-layout": "^3.2.14",
48
+ "@blocklet/list": "^0.18.9",
49
+ "@blocklet/meta": "1.17.6-beta-20251216-223535-283b9ffe",
50
+ "@blocklet/theme": "^3.2.14",
51
+ "@blocklet/ui-react": "^3.2.14",
52
+ "@blocklet/uploader": "^0.3.15",
53
53
  "@emotion/react": "^11.14.0",
54
54
  "@emotion/styled": "^11.14.1",
55
55
  "@iconify-icons/material-symbols": "^1.2.58",
@@ -61,9 +61,9 @@
61
61
  "@mui/material": "^7.2.0",
62
62
  "@mui/x-date-pickers": "^8.9.0",
63
63
  "@mui/x-tree-view": "^8.9.0",
64
- "@ocap/client": "^1.27.14",
65
- "@ocap/mcrypto": "^1.27.14",
66
- "@ocap/util": "^1.27.14",
64
+ "@ocap/client": "^1.27.15",
65
+ "@ocap/mcrypto": "^1.27.15",
66
+ "@ocap/util": "^1.27.15",
67
67
  "@uiw/react-markdown-preview": "^5.1.1",
68
68
  "ahooks": "^3.7.8",
69
69
  "axios": "^1.7.9",
@@ -127,5 +127,5 @@
127
127
  "babel-plugin-inline-react-svg": "^2.0.2",
128
128
  "glob": "^10.4.1"
129
129
  },
130
- "gitHead": "77e036de516d73370e5fd2bb1ffdca354cb45b62"
130
+ "gitHead": "00f2aa2d19ce17e3e15b8ab7a200830f633e9030"
131
131
  }