From fc130a52efb60ffb16aefecf7c74f002afd798d6 Mon Sep 17 00:00:00 2001 From: Tat Dat Duong Date: Mon, 3 Mar 2025 17:19:45 +0100 Subject: [PATCH] fix(sdk-js): stream intermediate values with messages-tuple We still need intermediate messages to ensure the client state and server state is in-sync as quickly as possible. --- libs/sdk-js/src/react/stream.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/libs/sdk-js/src/react/stream.tsx b/libs/sdk-js/src/react/stream.tsx index 72c25bbe4..0ae3344e6 100644 --- a/libs/sdk-js/src/react/stream.tsx +++ b/libs/sdk-js/src/react/stream.tsx @@ -623,9 +623,12 @@ export function useStream< >([]); const trackStreamMode = useCallback( - (mode: Exclude) => { - if (!trackStreamModeRef.current.includes(mode)) - trackStreamModeRef.current.push(mode); + (...mode: Exclude[]) => { + for (const m of mode) { + if (!trackStreamModeRef.current.includes(m)) { + trackStreamModeRef.current.push(m); + } + } }, [], ); @@ -908,7 +911,7 @@ export function useStream< }, get messages() { - trackStreamMode("messages-tuple"); + trackStreamMode("messages-tuple", "values"); return getMessages(values); }, @@ -916,7 +919,7 @@ export function useStream< message: Message, index?: number, ): MessageMetadata | undefined { - trackStreamMode("messages-tuple"); + trackStreamMode("messages-tuple", "values"); return messageMetadata?.find( (m) => m.messageId === (message.id ?? index), );