diff --git a/.changeset/itchy-rocks-tan.md b/.changeset/itchy-rocks-tan.md new file mode 100644 index 000000000..1c9eab266 --- /dev/null +++ b/.changeset/itchy-rocks-tan.md @@ -0,0 +1,5 @@ +--- +"@livekit/components-react": patch +--- + +fix: avoid text stream re-register on disconnect diff --git a/packages/react/src/hooks/useTextStream.ts b/packages/react/src/hooks/useTextStream.ts index ad18cad84..2f22bf4de 100644 --- a/packages/react/src/hooks/useTextStream.ts +++ b/packages/react/src/hooks/useTextStream.ts @@ -19,14 +19,10 @@ export function useTextStream(topic: string) { const room = useRoomContext(); const connectionState = useConnectionState(room); - const isDisconnected = React.useMemo( - () => connectionState === ConnectionState.Disconnected, - [connectionState], - ); + const isDisconnected = connectionState === ConnectionState.Disconnected; - const textStreamObservable = React.useMemo(() => { - return setupTextStream(room, topic); - }, [room, topic, isDisconnected]); + const textStreamData = React.useMemo(() => setupTextStream(room, topic), [room, topic]); + const textStreamObservable = isDisconnected ? undefined : textStreamData; const textStreams = useObservableState(textStreamObservable, []);