From 399f7beeeb8ded52ed1e000df056e08e79dba1d4 Mon Sep 17 00:00:00 2001 From: Mahesh Sanikommu Date: Wed, 29 Oct 2025 15:35:57 -0700 Subject: [PATCH] fix: chat messages scroll effect (#544) --- apps/web/app/(navigation)/chat/[id]/page.tsx | 10 +- apps/web/app/(navigation)/layout.tsx | 4 +- .../components/views/chat/chat-messages.tsx | 324 +++++++++--------- 3 files changed, 169 insertions(+), 169 deletions(-) diff --git a/apps/web/app/(navigation)/chat/[id]/page.tsx b/apps/web/app/(navigation)/chat/[id]/page.tsx index da64a79d..0f429595 100644 --- a/apps/web/app/(navigation)/chat/[id]/page.tsx +++ b/apps/web/app/(navigation)/chat/[id]/page.tsx @@ -18,14 +18,8 @@ export default function ChatPage() { }, [chatId, setCurrentChatId]) return ( -
-
-
-
- -
-
-
+
+
) } diff --git a/apps/web/app/(navigation)/layout.tsx b/apps/web/app/(navigation)/layout.tsx index 4c37c10e..7b7628bb 100644 --- a/apps/web/app/(navigation)/layout.tsx +++ b/apps/web/app/(navigation)/layout.tsx @@ -42,11 +42,11 @@ export default function NavigationLayout({ } }, []) return ( -
+
setShowAddMemoryView(true)} />
- {children} +
{children}
{showAddMemoryView && (
- {messages.map((message) => ( -
+
+ {messages.map((message) => (
- {message.parts - .filter((part) => - ["text", "tool-searchMemories", "tool-addMemory"].includes( - part.type, - ), - ) - .map((part, index) => { - switch (part.type) { - case "text": - return ( -
- {part.text} -
- ) - case "tool-searchMemories": { - switch (part.state) { - case "input-available": - case "input-streaming": - return ( -
- Searching - memories... -
- ) - case "output-error": - return ( -
- Error recalling - memories -
- ) - case "output-available": { - const output = part.output - const foundCount = - typeof output === "object" && - output !== null && - "count" in output - ? Number(output.count) || 0 - : 0 - // @ts-expect-error - const results = Array.isArray(output?.results) - ? // @ts-expect-error - output.results - : [] +
+ {message.parts + .filter((part) => + [ + "text", + "tool-searchMemories", + "tool-addMemory", + ].includes(part.type), + ) + .map((part, index) => { + switch (part.type) { + case "text": + return ( +
+ {part.text} +
+ ) + case "tool-searchMemories": { + switch (part.state) { + case "input-available": + case "input-streaming": + return ( +
+ Searching + memories... +
+ ) + case "output-error": + return ( +
+ Error recalling + memories +
+ ) + case "output-available": { + const output = part.output + const foundCount = + typeof output === "object" && + output !== null && + "count" in output + ? Number(output.count) || 0 + : 0 + // @ts-expect-error + const results = Array.isArray(output?.results) + ? // @ts-expect-error + output.results + : [] - return ( - - ) + return ( + + ) + } + default: + return null } - default: - return null } - } - case "tool-addMemory": { - switch (part.state) { - case "input-available": - return ( -
- Adding memory... -
- ) - case "output-error": - return ( -
- Error adding memory -
- ) - case "output-available": - return ( -
- Memory added -
- ) - case "input-streaming": - return ( -
- Adding memory... -
- ) - default: - return null + case "tool-addMemory": { + switch (part.state) { + case "input-available": + return ( +
+ Adding + memory... +
+ ) + case "output-error": + return ( +
+ Error adding memory +
+ ) + case "output-available": + return ( +
+ Memory added +
+ ) + case "input-streaming": + return ( +
+ Adding + memory... +
+ ) + default: + return null + } } + default: + return null } - default: - return null - } - })} -
- {message.role === "assistant" && ( -
- - + })}
- )} -
- ))} - {status === "submitted" && ( -
- - - Thinking... - -
- )} -
+ {message.role === "assistant" && ( +
+ + +
+ )} +
+ ))} + {status === "submitted" && ( +
+ + + Thinking... + +
+ )} +
+
-
+
{ e.preventDefault() if (status === "submitted") return