fix: preserve chat order and published page scripts
This commit is contained in:
+11
-5
@@ -234,14 +234,20 @@ export function shouldShowChatMessage(message: Message): boolean {
|
||||
}
|
||||
|
||||
export function pushMessage(messages: Message[], incoming: Message): Message[] {
|
||||
const last = messages[messages.length - 1];
|
||||
if (last?.id && incoming.id && last.id === incoming.id) {
|
||||
const existingIndex = incoming.id
|
||||
? messages.findIndex((message) => message?.id === incoming.id)
|
||||
: -1;
|
||||
if (existingIndex >= 0) {
|
||||
const existing = messages[existingIndex];
|
||||
return [
|
||||
...messages.slice(0, -1),
|
||||
...messages.slice(0, existingIndex),
|
||||
{
|
||||
...last,
|
||||
content: mergeMessageContent(last.content, incoming.content) as MessageContent[],
|
||||
...existing,
|
||||
...incoming,
|
||||
metadata: { ...existing.metadata, ...incoming.metadata },
|
||||
content: mergeMessageContent(existing.content, incoming.content) as MessageContent[],
|
||||
},
|
||||
...messages.slice(existingIndex + 1),
|
||||
];
|
||||
}
|
||||
return [...messages, incoming];
|
||||
|
||||
Reference in New Issue
Block a user