Merge remote-tracking branch 'origin/feat/Plugin-front-end' into feat/back-to-front
This commit is contained in:
@ -639,6 +639,19 @@ export function getMessageAreaScript(): string {
|
||||
return toolNameMap[toolName] || toolName;
|
||||
}
|
||||
|
||||
// 检查用户是否在底部附近(允许50px的误差)
|
||||
function isUserNearBottom() {
|
||||
const threshold = 50;
|
||||
return messagesEl.scrollHeight - messagesEl.scrollTop - messagesEl.clientHeight < threshold;
|
||||
}
|
||||
|
||||
// 智能滚动:只有用户在底部附近时才自动滚动
|
||||
function smartScrollToBottom() {
|
||||
if (isUserNearBottom()) {
|
||||
messagesEl.scrollTop = messagesEl.scrollHeight;
|
||||
}
|
||||
}
|
||||
|
||||
// 添加消息
|
||||
function addMessage(text, sender) {
|
||||
const div = document.createElement('div');
|
||||
@ -685,7 +698,7 @@ export function getMessageAreaScript(): string {
|
||||
}
|
||||
|
||||
messagesEl.appendChild(div);
|
||||
messagesEl.scrollTop = messagesEl.scrollHeight;
|
||||
smartScrollToBottom();
|
||||
|
||||
// 添加消息后检查 header 显示状态
|
||||
checkHeaderVisibility();
|
||||
@ -755,8 +768,8 @@ export function getMessageAreaScript(): string {
|
||||
}
|
||||
}
|
||||
|
||||
// 滚动到底部
|
||||
messagesEl.scrollTop = messagesEl.scrollHeight;
|
||||
// 智能滚动到底部
|
||||
smartScrollToBottom();
|
||||
}
|
||||
|
||||
// 完成流式消息
|
||||
@ -782,7 +795,7 @@ export function getMessageAreaScript(): string {
|
||||
currentStreamingMessage = null;
|
||||
}
|
||||
|
||||
messagesEl.scrollTop = messagesEl.scrollHeight;
|
||||
smartScrollToBottom();
|
||||
}
|
||||
|
||||
// 显示加载指示器
|
||||
@ -798,7 +811,7 @@ export function getMessageAreaScript(): string {
|
||||
<span class="loading-text">\${text}</span>
|
||||
\`;
|
||||
messagesEl.appendChild(loadingIndicator);
|
||||
messagesEl.scrollTop = messagesEl.scrollHeight;
|
||||
smartScrollToBottom();
|
||||
}
|
||||
|
||||
// 隐藏加载指示器
|
||||
@ -1048,8 +1061,8 @@ export function getMessageAreaScript(): string {
|
||||
currentSegmentedMessage = null;
|
||||
}
|
||||
|
||||
// 滚动到底部
|
||||
messagesEl.scrollTop = messagesEl.scrollHeight;
|
||||
// 智能滚动到底部
|
||||
smartScrollToBottom();
|
||||
}
|
||||
|
||||
// 渲染分段消息(兼容旧代码)
|
||||
@ -1212,7 +1225,7 @@ export function getMessageAreaScript(): string {
|
||||
container.appendChild(actionsDiv);
|
||||
|
||||
messagesEl.appendChild(container);
|
||||
messagesEl.scrollTop = messagesEl.scrollHeight;
|
||||
smartScrollToBottom();
|
||||
}
|
||||
|
||||
// 格式化文本(支持 Markdown)
|
||||
@ -1283,7 +1296,7 @@ export function getMessageAreaScript(): string {
|
||||
\${detail ? \`<div class="tool-detail">\${detail}</div>\` : ''}
|
||||
\`;
|
||||
messagesEl.appendChild(div);
|
||||
messagesEl.scrollTop = messagesEl.scrollHeight;
|
||||
smartScrollToBottom();
|
||||
|
||||
// 添加消息后检查 header 显示状态
|
||||
checkHeaderVisibility();
|
||||
@ -1343,7 +1356,7 @@ export function getMessageAreaScript(): string {
|
||||
div.appendChild(customContainer);
|
||||
|
||||
messagesEl.appendChild(div);
|
||||
messagesEl.scrollTop = messagesEl.scrollHeight;
|
||||
smartScrollToBottom();
|
||||
|
||||
// 添加消息后检查 header 显示状态
|
||||
checkHeaderVisibility();
|
||||
|
||||
Reference in New Issue
Block a user