@senguoyun/dsh-arkme 0.1.72 → 0.1.73
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/docs/quick-add-hover-regression-2026-09-21.md +11 -0
- package/lib/arko-native-client.js +5 -3
- package/lib/client.js +20 -16
- package/lib/client.js.map +1 -1
- package/lib/harness-native-selection-client.js +5 -3
- package/lib/types/client/ArkmeDshMenu.d.ts.map +1 -1
- package/lib/types/client/ArkmeQuickAdd.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -27,3 +27,14 @@
|
|
|
27
27
|
预览脚本:`/Users/tison/arkme/.codex-artifacts/web-preview-3098/check-quick-add-hover.mjs`。
|
|
28
28
|
|
|
29
29
|
仅更新独立 3098 Web 预览,未修改已安装 Arkme 客户端。Git 提交推送单独执行,不代表已合并或发布。
|
|
30
|
+
|
|
31
|
+
## 第二轮:500ms 缓冲与点击固定
|
|
32
|
+
|
|
33
|
+
- 用户反馈对话入口仍不易从按钮移入菜单。旧版 3098 的真实鼠标测试确认:越出菜单停留 350ms 已关闭。
|
|
34
|
+
- 添加菜单离开缓冲改为 500ms;进入按钮、菜单或过渡间隙取消关闭。鼠标离开文档与窗口失焦也遵循缓冲,避免绕过定时器立即收起。
|
|
35
|
+
- 悬浮与点击使用独立状态。点击(包括触摸和键盘激活)固定展开,取消原有倒计时;随后鼠标移开、再次经过按钮均不关闭或退回悬浮模式。
|
|
36
|
+
- 点击外部、选择菜单操作或 Escape 关闭并重置状态,下次单纯悬浮仍按 500ms 规则收起。外部点击覆盖嵌入页面及阻止冒泡的元素。
|
|
37
|
+
- 对话和联系人复用相同入口。其他悬浮菜单未配置延时时仍保持原有立即关闭行为。
|
|
38
|
+
- 定向回归 11 个测试文件、67 项通过;类型检查、通话资源校验和构建通过。
|
|
39
|
+
- 更新独立 3098 后,Chromium 对话及联系人入口在 1440、900、420px 均通过:跨按钮下方间隙、斜向移入、越出 350ms 再返回、点击固定后移开 800ms、重新经过按钮、菜单项可达、外部点击及键盘关闭;无 pageerror。
|
|
40
|
+
- 预览安装包为 `senguoyun-dsh-arkme-0.1.72.tgz`;本地与预览安装目录的 `client.js` SHA256 相同:`a41546e5126b39389f4f509ec22abdd5651b1266445e898aa2abd1d4f2408052`。旧预览包已备份为 `backups/quick-add-before-20260921-0345.tgz`。
|
|
@@ -2114,7 +2114,7 @@ Arkme 用户 {v0}|Arkme user {v0}
|
|
|
2114
2114
|
else scheduleClose();
|
|
2115
2115
|
};
|
|
2116
2116
|
const leave = (event) => {
|
|
2117
|
-
if (event.relatedTarget === null)
|
|
2117
|
+
if (event.relatedTarget === null) scheduleClose();
|
|
2118
2118
|
};
|
|
2119
2119
|
const observer = new MutationObserver(() => {
|
|
2120
2120
|
if (!anchor.isConnected) close();
|
|
@@ -2124,14 +2124,16 @@ Arkme 用户 {v0}|Arkme user {v0}
|
|
|
2124
2124
|
subtree: true
|
|
2125
2125
|
});
|
|
2126
2126
|
doc.addEventListener("pointermove", move, true);
|
|
2127
|
+
doc.addEventListener("pointerover", move, true);
|
|
2127
2128
|
doc.addEventListener("pointerout", leave, true);
|
|
2128
|
-
doc.defaultView?.addEventListener("blur",
|
|
2129
|
+
doc.defaultView?.addEventListener("blur", scheduleClose);
|
|
2129
2130
|
return () => {
|
|
2130
2131
|
cancel();
|
|
2131
2132
|
observer.disconnect();
|
|
2132
2133
|
doc.removeEventListener("pointermove", move, true);
|
|
2134
|
+
doc.removeEventListener("pointerover", move, true);
|
|
2133
2135
|
doc.removeEventListener("pointerout", leave, true);
|
|
2134
|
-
doc.defaultView?.removeEventListener("blur",
|
|
2136
|
+
doc.defaultView?.removeEventListener("blur", scheduleClose);
|
|
2135
2137
|
};
|
|
2136
2138
|
}, [
|
|
2137
2139
|
open,
|
package/lib/client.js
CHANGED
|
@@ -110836,7 +110836,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
110836
110836
|
else scheduleClose();
|
|
110837
110837
|
};
|
|
110838
110838
|
const leave = (event) => {
|
|
110839
|
-
if (event.relatedTarget === null)
|
|
110839
|
+
if (event.relatedTarget === null) scheduleClose();
|
|
110840
110840
|
};
|
|
110841
110841
|
const observer = new MutationObserver(() => {
|
|
110842
110842
|
if (!anchor.isConnected) close();
|
|
@@ -110846,14 +110846,16 @@ Please report this to https://github.com/markedjs/marked.`, e) {
|
|
|
110846
110846
|
subtree: true
|
|
110847
110847
|
});
|
|
110848
110848
|
doc.addEventListener("pointermove", move, true);
|
|
110849
|
+
doc.addEventListener("pointerover", move, true);
|
|
110849
110850
|
doc.addEventListener("pointerout", leave, true);
|
|
110850
|
-
doc.defaultView?.addEventListener("blur",
|
|
110851
|
+
doc.defaultView?.addEventListener("blur", scheduleClose);
|
|
110851
110852
|
return () => {
|
|
110852
110853
|
cancel();
|
|
110853
110854
|
observer.disconnect();
|
|
110854
110855
|
doc.removeEventListener("pointermove", move, true);
|
|
110856
|
+
doc.removeEventListener("pointerover", move, true);
|
|
110855
110857
|
doc.removeEventListener("pointerout", leave, true);
|
|
110856
|
-
doc.defaultView?.removeEventListener("blur",
|
|
110858
|
+
doc.defaultView?.removeEventListener("blur", scheduleClose);
|
|
110857
110859
|
};
|
|
110858
110860
|
}, [
|
|
110859
110861
|
open,
|
|
@@ -153135,7 +153137,7 @@ html body {
|
|
|
153135
153137
|
anchor,
|
|
153136
153138
|
align: "end",
|
|
153137
153139
|
onClose,
|
|
153138
|
-
hoverCloseDelayMs:
|
|
153140
|
+
hoverCloseDelayMs: 500,
|
|
153139
153141
|
...getAnchorRect === void 0 ? {} : { getAnchorRect },
|
|
153140
153142
|
...hoverAnchor === void 0 ? {} : { hoverAnchor },
|
|
153141
153143
|
actions: [
|
|
@@ -153184,7 +153186,9 @@ html body {
|
|
|
153184
153186
|
}
|
|
153185
153187
|
function ArkmeQuickAddButton({ onContactAdd, onSourceCreated, onBotCreated, onNewDshSession, notificationActivationRevision = 0, onBlockingOverlayChange }) {
|
|
153186
153188
|
useArkmeLocale();
|
|
153187
|
-
const [
|
|
153189
|
+
const [menuMode, setMenuMode] = (0, react$1.useState)();
|
|
153190
|
+
const menuOpen = menuMode !== void 0;
|
|
153191
|
+
const closeMenu = () => setMenuMode(void 0);
|
|
153188
153192
|
const [menuError, setMenuError] = (0, react$1.useState)("");
|
|
153189
153193
|
const [dialogKind, setDialogKind] = (0, react$1.useState)();
|
|
153190
153194
|
const [dialogBusy, setDialogBusy] = (0, react$1.useState)(false);
|
|
@@ -153207,7 +153211,7 @@ html body {
|
|
|
153207
153211
|
if (notificationRevisionRef.current === notificationActivationRevision) return;
|
|
153208
153212
|
notificationRevisionRef.current = notificationActivationRevision;
|
|
153209
153213
|
pendingNotificationDismissRef.current = true;
|
|
153210
|
-
|
|
153214
|
+
closeMenu();
|
|
153211
153215
|
if (!dialogBusy) {
|
|
153212
153216
|
pendingNotificationDismissRef.current = false;
|
|
153213
153217
|
setDialogKind(void 0);
|
|
@@ -153219,18 +153223,18 @@ html body {
|
|
|
153219
153223
|
setDialogKind(void 0);
|
|
153220
153224
|
}, [dialogBusy]);
|
|
153221
153225
|
const chooseDialog = (kind) => {
|
|
153222
|
-
|
|
153226
|
+
closeMenu();
|
|
153223
153227
|
setDialogBusy(false);
|
|
153224
153228
|
setDialogKind(kind);
|
|
153225
153229
|
};
|
|
153226
153230
|
const openMenu = () => {
|
|
153227
153231
|
setMenuError("");
|
|
153228
|
-
|
|
153232
|
+
setMenuMode((current) => current ?? "hover");
|
|
153229
153233
|
};
|
|
153230
153234
|
const menu = /* @__PURE__ */ (0, react_jsx_runtime.jsx)(ArkmeQuickAddMenu, {
|
|
153231
153235
|
open: menuOpen,
|
|
153232
|
-
onClose:
|
|
153233
|
-
hoverAnchor: triggerRef.current ?? void 0,
|
|
153236
|
+
onClose: closeMenu,
|
|
153237
|
+
hoverAnchor: menuMode === "hover" ? triggerRef.current ?? void 0 : void 0,
|
|
153234
153238
|
anchor: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
153235
153239
|
"data-arkme-feedback": "neutral",
|
|
153236
153240
|
ref: triggerRef,
|
|
@@ -153243,9 +153247,9 @@ html body {
|
|
|
153243
153247
|
onPointerEnter: (event) => {
|
|
153244
153248
|
if (event?.pointerType !== "touch") openMenu();
|
|
153245
153249
|
},
|
|
153246
|
-
onClick: (
|
|
153247
|
-
|
|
153248
|
-
|
|
153250
|
+
onClick: () => {
|
|
153251
|
+
setMenuError("");
|
|
153252
|
+
setMenuMode("pinned");
|
|
153249
153253
|
},
|
|
153250
153254
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconPlusOutline16, {
|
|
153251
153255
|
size: 20,
|
|
@@ -153257,13 +153261,13 @@ html body {
|
|
|
153257
153261
|
try {
|
|
153258
153262
|
onNewDshSession();
|
|
153259
153263
|
setMenuError("");
|
|
153260
|
-
|
|
153264
|
+
closeMenu();
|
|
153261
153265
|
} catch (error) {
|
|
153262
153266
|
setMenuError(error instanceof Error ? error.message : "暂时无法新建 DSH 会话,请稍后再试");
|
|
153263
153267
|
}
|
|
153264
153268
|
},
|
|
153265
153269
|
onContactAdd: () => {
|
|
153266
|
-
|
|
153270
|
+
closeMenu();
|
|
153267
153271
|
onContactAdd();
|
|
153268
153272
|
},
|
|
153269
153273
|
onCreateGroup: () => {
|
|
@@ -201413,7 +201417,7 @@ registerProcessor('arkme-pcm-journal', ArkmePcmJournal);
|
|
|
201413
201417
|
const c$3 = e$24;
|
|
201414
201418
|
//#endregion
|
|
201415
201419
|
//#region package.json
|
|
201416
|
-
var version = "0.1.
|
|
201420
|
+
var version = "0.1.73";
|
|
201417
201421
|
//#endregion
|
|
201418
201422
|
//#region src/client/profile-change-store.ts
|
|
201419
201423
|
let revision = 0;
|