diff --git a/packages/ui/src/components/chat-view.tsx b/packages/ui/src/components/chat-view.tsx index 79d95ef9..5a1c92df 100644 --- a/packages/ui/src/components/chat-view.tsx +++ b/packages/ui/src/components/chat-view.tsx @@ -8,6 +8,7 @@ import { MessageList } from "@multica/ui/components/message-list"; import { MemoizedMarkdown } from "@multica/ui/components/markdown"; import { MulticaIcon } from "@multica/ui/components/multica-icon"; import { ExecApprovalItem } from "@multica/ui/components/exec-approval-item"; +import { Spinner } from "@multica/ui/components/spinner"; import { useScrollFade } from "@multica/ui/hooks/use-scroll-fade"; import { useAutoScroll } from "@multica/ui/hooks/use-auto-scroll"; import type { Message } from "@multica/store"; @@ -209,6 +210,14 @@ export function ChatView({ )} + {isLoading && streamingIds.size === 0 && pendingApprovals.length === 0 && ( +
+
+ + Generating... +
+
+ )} {pendingApprovals.length > 0 && (
{pendingApprovals.map((approval) => ( diff --git a/packages/ui/src/components/markdown/StreamingMarkdown.tsx b/packages/ui/src/components/markdown/StreamingMarkdown.tsx index 86e2b72b..282ca65a 100644 --- a/packages/ui/src/components/markdown/StreamingMarkdown.tsx +++ b/packages/ui/src/components/markdown/StreamingMarkdown.tsx @@ -192,6 +192,15 @@ export function StreamingMarkdown({ ) } + if (blocks.length === 0) { + return ( +
+ + Generating... +
+ ) + } + const indicator = (
@@ -199,10 +208,6 @@ export function StreamingMarkdown({
) - if (blocks.length === 0) { - return indicator - } - return ( <> {blocks.map((block, i) => {