@@ -13,23 +13,26 @@ export function useChatMessagesEvents() { const asyncQueue = new AsyncQueue() const callback = useCallback( - (obj: MessageEventStreamResponse) => { + ({ id, content }: MessageEventStreamResponse) => { if (!currentChat || !loaded) return const currentMessages = useChatBotMessages.getState().messages - const message = currentMessages.find((m) => m.uid === obj.id) + const message = currentMessages.find((m) => m.uid === id) if (!message) return + if (!message.content || message.content === '') { + message.content = content - if (!message.content) message.content = '' + return eventBus.publish(`bot-message-update-${message.uid}`, message.content) + } asyncQueue.push(async () => { - for (const word of obj.content) { + for (const word of content) { message.content += word eventBus.publish(`bot-message-update-${message.uid}`, message.content) - + await new Promise((resolve) => setTimeout(resolve, 50)) } })