SurfSense/surfsense_web/components/chat/active-chat-stream-runner.tsx

24 lines
638 B
TypeScript
Raw Normal View History

"use client";
import { useEffect } from "react";
import { chatStreamStore } from "@/lib/chat/stream-engine/store";
/**
* Persistent, render-null host that scopes the in-flight chat turn's lifetime
* to the workspace shell, not the chat page.
*
* Mounted in ``LayoutDataProvider``, it survives in-app navigation between
* workspace routes and aborts the single active turn only on workspace/app
* teardown, so ordinary navigation disconnects the view without stopping the
* stream.
*/
export function ActiveChatStreamRunner() {
useEffect(() => {
return () => {
chatStreamStore.abortActive();
};
}, []);
return null;
}