Cleanup, make more robust

This commit is contained in:
Tat Dat Duong
2025-04-30 16:52:35 +02:00
parent e556b13a06
commit 58dd69d1a2
2 changed files with 14 additions and 11 deletions

View File

@@ -32,13 +32,12 @@ function CustomComponent({
return ( return (
<Fragment key={message.id}> <Fragment key={message.id}>
{customComponents.map((customComponent) => ( {customComponents.map((customComponent) => (
<Fragment key={customComponent.id}> <LoadExternalComponent
<LoadExternalComponent key={customComponent.id}
stream={thread} stream={thread}
message={customComponent} message={customComponent}
meta={{ ui: customComponent, artifact }} meta={{ ui: customComponent, artifact }}
/> />
</Fragment>
))} ))}
</Fragment> </Fragment>
); );

View File

@@ -9,6 +9,8 @@ import { useStream } from "@langchain/langgraph-sdk/react";
import { type Message } from "@langchain/langgraph-sdk"; import { type Message } from "@langchain/langgraph-sdk";
import { import {
uiMessageReducer, uiMessageReducer,
isUIMessage,
isRemoveUIMessage,
type UIMessage, type UIMessage,
type RemoveUIMessage, type RemoveUIMessage,
} from "@langchain/langgraph-sdk/react-ui"; } from "@langchain/langgraph-sdk/react-ui";
@@ -82,10 +84,12 @@ const StreamSession = ({
assistantId, assistantId,
threadId: threadId ?? null, threadId: threadId ?? null,
onCustomEvent: (event, options) => { onCustomEvent: (event, options) => {
options.mutate((prev) => { if (isUIMessage(event) || isRemoveUIMessage(event)) {
const ui = uiMessageReducer(prev.ui ?? [], event); options.mutate((prev) => {
return { ...prev, ui }; const ui = uiMessageReducer(prev.ui ?? [], event);
}); return { ...prev, ui };
});
}
}, },
onThreadId: (id) => { onThreadId: (id) => {
setThreadId(id); setThreadId(id);