From c77f204d027ae1eb70c77429b31c4463025f5b26 Mon Sep 17 00:00:00 2001 From: Vikhyath Mondreti Date: Thu, 9 Apr 2026 13:35:38 -0700 Subject: [PATCH] streamed text change --- .../components/chat-content/chat-content.tsx | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/chat-content.tsx b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/chat-content.tsx index 8ae245f42c..7ba6cc8979 100644 --- a/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/chat-content.tsx +++ b/apps/sim/app/workspace/[workspaceId]/home/components/message-content/components/chat-content/chat-content.tsx @@ -1,6 +1,6 @@ 'use client' -import { type ComponentPropsWithoutRef, useMemo } from 'react' +import { type ComponentPropsWithoutRef, useEffect, useMemo, useRef } from 'react' import { Streamdown } from 'streamdown' import 'streamdown/styles.css' import 'prismjs/components/prism-typescript' @@ -181,6 +181,18 @@ export function ChatContent({ onOptionSelect, smoothStreaming = true, }: ChatContentProps) { + const hydratedStreamingRef = useRef(isStreaming && content.trim().length > 0) + const previousIsStreamingRef = useRef(isStreaming) + + useEffect(() => { + if (!previousIsStreamingRef.current && isStreaming && content.trim().length > 0) { + hydratedStreamingRef.current = true + } else if (!isStreaming) { + hydratedStreamingRef.current = false + } + previousIsStreamingRef.current = isStreaming + }, [content, isStreaming]) + const rendered = useStreamingText(content, isStreaming && smoothStreaming) const parsed = useMemo(() => parseSpecialTags(rendered, isStreaming), [rendered, isStreaming]) @@ -216,7 +228,7 @@ export function ChatContent({ {rendered}