mirror of
https://github.com/hicccc77/WeFlow.git
synced 2026-03-24 23:06:51 +00:00
Merge branch 'main' into dev
This commit is contained in:
3
package-lock.json
generated
3
package-lock.json
generated
@@ -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",
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user