@wendongfly/myhi 1.3.89 → 1.3.90
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/dist/chat.html +20 -2
- package/dist/index.js +1 -1
- package/dist/index.min.js +1 -1
- package/package.json +1 -1
package/dist/chat.html
CHANGED
|
@@ -886,10 +886,22 @@
|
|
|
886
886
|
scrollToBottom();
|
|
887
887
|
}
|
|
888
888
|
|
|
889
|
+
// 连续重复的同一条状态不再一行行堆,折叠成「— xxx — ×N」。
|
|
890
|
+
// 任何会反复触发的状态(自动重启、上传失败、控制权变更…)都不会再刷屏。
|
|
889
891
|
function addStatusMessage(text) {
|
|
890
892
|
endStream(); endToolGroup();
|
|
893
|
+
const last = chatArea.lastElementChild;
|
|
894
|
+
if (last && last.classList.contains('msg-status') && last.dataset.statusText === text) {
|
|
895
|
+
const n = (parseInt(last.dataset.statusCount, 10) || 1) + 1;
|
|
896
|
+
last.dataset.statusCount = String(n);
|
|
897
|
+
last.textContent = '— ' + text + ' — ×' + n;
|
|
898
|
+
scrollToBottom();
|
|
899
|
+
return;
|
|
900
|
+
}
|
|
891
901
|
const msg = document.createElement('div');
|
|
892
902
|
msg.className = 'msg msg-status';
|
|
903
|
+
msg.dataset.statusText = text;
|
|
904
|
+
msg.dataset.statusCount = '1';
|
|
893
905
|
msg.textContent = '— ' + text + ' —';
|
|
894
906
|
chatArea.appendChild(msg);
|
|
895
907
|
trimMessages();
|
|
@@ -1497,11 +1509,17 @@
|
|
|
1497
1509
|
socket.on('error', ({ message }) => { showOverlay('错误: ' + message, true); });
|
|
1498
1510
|
|
|
1499
1511
|
// 控制权事件
|
|
1512
|
+
// 只有「别人抢走了」才值得往聊天区写一行。自己拿到 / 自己释放属于日常动作,
|
|
1513
|
+
// 右上角徽标(控制中 / 获取控制)已经把状态说清楚了,再刷消息就是噪音——
|
|
1514
|
+
// 之前正是这两条把长会话刷成了满屏「你已获取控制权 / 控制权已释放」。
|
|
1515
|
+
let lastControlHolder = null;
|
|
1500
1516
|
socket.on('control-changed', ({ sessionId, holder, holderName }) => {
|
|
1501
1517
|
if (sessionId !== SESSION_ID) return;
|
|
1502
1518
|
updateControlUI(holder === socket.id, holderName);
|
|
1503
|
-
if (holder
|
|
1504
|
-
|
|
1519
|
+
if (holder && holder !== socket.id && holder !== lastControlHolder) {
|
|
1520
|
+
addStatusMessage(`${holderName || '其他用户'} 获取了控制权`);
|
|
1521
|
+
}
|
|
1522
|
+
lastControlHolder = holder || null;
|
|
1505
1523
|
});
|
|
1506
1524
|
socket.on('control-denied', ({ reason }) => addStatusMessage('无法获取控制: ' + reason));
|
|
1507
1525
|
socket.on('kicked', ({ reason }) => { addStatusMessage(reason || '你已被管理员踢出'); setTimeout(() => location.href = '/', 2000); });
|