From 07984386212a07c1442d173271f8af25e83ea74f Mon Sep 17 00:00:00 2001 From: Will Chen Date: Thu, 15 May 2025 16:12:46 -0700 Subject: [PATCH] Add loading indicator for in-progress message & fix bug with multiple loaders (#173) --- src/components/chat/ChatMessage.tsx | 19 ++++++++++++++++--- src/components/chat/MessagesList.tsx | 6 +++++- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/components/chat/ChatMessage.tsx b/src/components/chat/ChatMessage.tsx index 1210f35..eab4b26 100644 --- a/src/components/chat/ChatMessage.tsx +++ b/src/components/chat/ChatMessage.tsx @@ -9,9 +9,10 @@ import { CheckCircle, XCircle } from "lucide-react"; interface ChatMessageProps { message: Message; + isLastMessage: boolean; } -const ChatMessage = ({ message }: ChatMessageProps) => { +const ChatMessage = ({ message, isLastMessage }: ChatMessageProps) => { const { isStreaming } = useStreamChat(); return (
{ : "bg-(--sidebar-accent)" }`} > - {message.role === "assistant" && !message.content && isStreaming ? ( + {message.role === "assistant" && + !message.content && + isStreaming && + isLastMessage ? (
{ suppressHydrationWarning > {message.role === "assistant" ? ( - + <> + + {isLastMessage && isStreaming && ( +
+
+
+
+
+ )} + ) : ( )} diff --git a/src/components/chat/MessagesList.tsx b/src/components/chat/MessagesList.tsx index 10a23e5..69a5997 100644 --- a/src/components/chat/MessagesList.tsx +++ b/src/components/chat/MessagesList.tsx @@ -36,7 +36,11 @@ export const MessagesList = forwardRef(
{messages.length > 0 ? ( messages.map((message, index) => ( - + )) ) : (