Merge branch 'main' into dev

This commit is contained in:
cc
2026-03-20 00:42:56 +08:00
committed by GitHub
3 changed files with 19 additions and 13 deletions

3
package-lock.json generated
View File

@@ -9692,6 +9692,9 @@
"sherpa-onnx-win-x64": "^1.12.23" "sherpa-onnx-win-x64": "^1.12.23"
} }
}, },
"node_modules/sherpa-onnx-node/node_modules/sherpa-onnx-darwin-x64": {
"optional": true
},
"node_modules/sherpa-onnx-win-ia32": { "node_modules/sherpa-onnx-win-ia32": {
"version": "1.12.23", "version": "1.12.23",
"resolved": "https://registry.npmmirror.com/sherpa-onnx-win-ia32/-/sherpa-onnx-win-ia32-1.12.23.tgz", "resolved": "https://registry.npmmirror.com/sherpa-onnx-win-ia32/-/sherpa-onnx-win-ia32-1.12.23.tgz",

View File

@@ -5,7 +5,7 @@
"main": "dist-electron/main.js", "main": "dist-electron/main.js",
"author": { "author": {
"name": "cc", "name": "cc",
"email": "hicccc77@github.com" "email": "yccccccy@proton.me"
}, },
"repository": { "repository": {
"type": "git", "type": "git",

View File

@@ -3028,18 +3028,19 @@ function ChatPage(props: ChatPageProps) {
return return
} }
if (result.success && result.messages) { if (result.success && result.messages) {
const resultMessages = result.messages
if (offset === 0) { if (offset === 0) {
setMessages(result.messages) setMessages(resultMessages)
persistSessionPreviewCache(sessionId, result.messages) persistSessionPreviewCache(sessionId, resultMessages)
if (result.messages.length === 0) { if (resultMessages.length === 0) {
setNoMessageTable(true) setNoMessageTable(true)
setHasMoreMessages(false) setHasMoreMessages(false)
} }
// 群聊发送者信息补齐改为非阻塞执行,避免影响首屏切换 // 群聊发送者信息补齐改为非阻塞执行,避免影响首屏切换
const isGroup = sessionId.includes('@chatroom') const isGroup = sessionId.includes('@chatroom')
if (isGroup && result.messages.length > 0) { if (isGroup && resultMessages.length > 0) {
const unknownSenders = [...new Set(result.messages const unknownSenders = [...new Set(resultMessages
.filter(m => m.isSend !== 1 && m.senderUsername && !senderAvatarCache.has(m.senderUsername)) .filter(m => m.isSend !== 1 && m.senderUsername && !senderAvatarCache.has(m.senderUsername))
.map(m => m.senderUsername as string) .map(m => m.senderUsername as string)
)] )]
@@ -3052,7 +3053,7 @@ function ChatPage(props: ChatPageProps) {
const loadedMessages = result.messages const loadedMessages = result.messages
requestAnimationFrame(() => { requestAnimationFrame(() => {
if (isDateJumpRef.current) { if (isDateJumpRef.current) {
if (messageVirtuosoRef.current && loadedMessages.length > 0) { if (messageVirtuosoRef.current && resultMessages.length > 0) {
messageVirtuosoRef.current.scrollToIndex({ index: 0, align: 'start', behavior: 'auto' }) messageVirtuosoRef.current.scrollToIndex({ index: 0, align: 'start', behavior: 'auto' })
} else if (messageListRef.current) { } else if (messageListRef.current) {
messageListRef.current.scrollTop = 0 messageListRef.current.scrollTop = 0
@@ -3061,7 +3062,7 @@ function ChatPage(props: ChatPageProps) {
return return
} }
const lastIndex = loadedMessages.length - 1 const lastIndex = resultMessages.length - 1
if (lastIndex >= 0 && messageVirtuosoRef.current) { if (lastIndex >= 0 && messageVirtuosoRef.current) {
messageVirtuosoRef.current.scrollToIndex({ index: lastIndex, align: 'end', behavior: 'auto' }) messageVirtuosoRef.current.scrollToIndex({ index: lastIndex, align: 'end', behavior: 'auto' })
} else if (messageListRef.current) { } else if (messageListRef.current) {
@@ -3069,12 +3070,12 @@ function ChatPage(props: ChatPageProps) {
} }
}) })
} else { } else {
appendMessages(result.messages, true) appendMessages(resultMessages, true)
// 加载更多也同样处理发送者信息预取 // 加载更多也同样处理发送者信息预取
const isGroup = sessionId.includes('@chatroom') const isGroup = sessionId.includes('@chatroom')
if (isGroup) { if (isGroup) {
const unknownSenders = [...new Set(result.messages const unknownSenders = [...new Set(resultMessages
.filter(m => m.isSend !== 1 && m.senderUsername && !senderAvatarCache.has(m.senderUsername)) .filter(m => m.isSend !== 1 && m.senderUsername && !senderAvatarCache.has(m.senderUsername))
.map(m => m.senderUsername as string) .map(m => m.senderUsername as string)
)] )]
@@ -3095,8 +3096,8 @@ function ChatPage(props: ChatPageProps) {
return return
} }
} }
if (appendedMessages.length > 0) { if (resultMessages.length > 0) {
messageVirtuosoRef.current.scrollToIndex({ index: appendedMessages.length, align: 'start', behavior: 'auto' }) messageVirtuosoRef.current.scrollToIndex({ index: resultMessages.length, align: 'start', behavior: 'auto' })
} }
return return
} }
@@ -3122,7 +3123,7 @@ function ChatPage(props: ChatPageProps) {
} }
const nextOffset = typeof result.nextOffset === 'number' const nextOffset = typeof result.nextOffset === 'number'
? result.nextOffset ? result.nextOffset
: offset + result.messages.length : offset + resultMessages.length
setCurrentOffset(nextOffset) setCurrentOffset(nextOffset)
} else if (!result.success) { } else if (!result.success) {
setNoMessageTable(true) setNoMessageTable(true)
@@ -5637,6 +5638,8 @@ function ChatPage(props: ChatPageProps) {
}), [hasMoreMessages, hasMoreLater, isLoadingMore]) }), [hasMoreMessages, hasMoreLater, isLoadingMore])
const renderMessageListItem = useCallback((index: number, msg: Message) => { const renderMessageListItem = useCallback((index: number, msg: Message) => {
if (!currentSession) return null
const prevMsg = index > 0 ? messages[index - 1] : undefined const prevMsg = index > 0 ? messages[index - 1] : undefined
const showDateDivider = shouldShowDateDivider(msg, prevMsg) const showDateDivider = shouldShowDateDivider(msg, prevMsg)
const showTime = !prevMsg || (msg.createTime - prevMsg.createTime > 300) const showTime = !prevMsg || (msg.createTime - prevMsg.createTime > 300)