Hide empty assistant messages until content arrives
This commit is contained in:
@@ -294,42 +294,50 @@ export default function MessageStream(props: MessageStreamProps) {
|
|||||||
const version = message.version ?? 0
|
const version = message.version ?? 0
|
||||||
const isQueued = message.type === "user" && (lastAssistantIndex === -1 || index > lastAssistantIndex)
|
const isQueued = message.type === "user" && (lastAssistantIndex === -1 || index > lastAssistantIndex)
|
||||||
|
|
||||||
const cacheEntry = messageItemCache.get(message.id)
|
const hasRenderableContent =
|
||||||
if (
|
message.type !== "assistant" ||
|
||||||
cacheEntry &&
|
combinedParts.length > 0 ||
|
||||||
cacheEntry.version === version &&
|
Boolean(messageInfo?.error) ||
|
||||||
cacheEntry.showThinking === showThinking &&
|
message.status === "error"
|
||||||
cacheEntry.isQueued === isQueued &&
|
|
||||||
cacheEntry.messageInfo === messageInfo
|
if (hasRenderableContent) {
|
||||||
) {
|
const cacheEntry = messageItemCache.get(message.id)
|
||||||
cacheEntry.displayParts = displayParts
|
if (
|
||||||
cacheEntry.version = version
|
cacheEntry &&
|
||||||
cacheEntry.showThinking = showThinking
|
cacheEntry.version === version &&
|
||||||
cacheEntry.isQueued = isQueued
|
cacheEntry.showThinking === showThinking &&
|
||||||
cacheEntry.messageInfo = messageInfo
|
cacheEntry.isQueued === isQueued &&
|
||||||
cacheEntry.item.message = message
|
cacheEntry.messageInfo === messageInfo
|
||||||
cacheEntry.item.combinedParts = combinedParts
|
) {
|
||||||
cacheEntry.item.isQueued = isQueued
|
cacheEntry.displayParts = displayParts
|
||||||
cacheEntry.item.messageInfo = messageInfo
|
cacheEntry.version = version
|
||||||
newMessageCache.set(message.id, cacheEntry)
|
cacheEntry.showThinking = showThinking
|
||||||
items.push(cacheEntry.item)
|
cacheEntry.isQueued = isQueued
|
||||||
} else {
|
cacheEntry.messageInfo = messageInfo
|
||||||
const messageItem: MessageDisplayItem = {
|
cacheEntry.item.message = message
|
||||||
type: "message",
|
cacheEntry.item.combinedParts = combinedParts
|
||||||
message,
|
cacheEntry.item.isQueued = isQueued
|
||||||
combinedParts,
|
cacheEntry.item.messageInfo = messageInfo
|
||||||
isQueued,
|
newMessageCache.set(message.id, cacheEntry)
|
||||||
messageInfo,
|
items.push(cacheEntry.item)
|
||||||
|
} else {
|
||||||
|
const messageItem: MessageDisplayItem = {
|
||||||
|
type: "message",
|
||||||
|
message,
|
||||||
|
combinedParts,
|
||||||
|
isQueued,
|
||||||
|
messageInfo,
|
||||||
|
}
|
||||||
|
newMessageCache.set(message.id, {
|
||||||
|
version,
|
||||||
|
showThinking,
|
||||||
|
isQueued,
|
||||||
|
messageInfo,
|
||||||
|
displayParts,
|
||||||
|
item: messageItem,
|
||||||
|
})
|
||||||
|
items.push(messageItem)
|
||||||
}
|
}
|
||||||
newMessageCache.set(message.id, {
|
|
||||||
version,
|
|
||||||
showThinking,
|
|
||||||
isQueued,
|
|
||||||
messageInfo,
|
|
||||||
displayParts,
|
|
||||||
item: messageItem,
|
|
||||||
})
|
|
||||||
items.push(messageItem)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for (let toolIndex = 0; toolIndex < displayParts.tool.length; toolIndex++) {
|
for (let toolIndex = 0; toolIndex < displayParts.tool.length; toolIndex++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user