UNPKG

@assistant-ui/react

Version:

Typescript/React library for AI Chat

38 lines (37 loc) 1.22 kB
"use client"; // src/context/react/ThreadContext.ts import { createContext, useEffect, useState } from "react"; import { createContextHook } from "./utils/createContextHook.mjs"; import { createStateHookForRuntime } from "./utils/createStateHookForRuntime.mjs"; var ThreadContext = createContext(null); var useThreadContext = createContextHook( ThreadContext, "AssistantRuntimeProvider" ); function useThreadRuntime(options) { const context = useThreadContext(options); if (!context) return null; return context.useThreadRuntime(); } var useThread = createStateHookForRuntime(useThreadRuntime); var useThreadComposerRuntime = (opt) => useThreadRuntime(opt)?.composer ?? null; var useThreadComposer = createStateHookForRuntime( useThreadComposerRuntime ); function useThreadModelContext(options) { const [, rerender] = useState({}); const runtime = useThreadRuntime(options); useEffect(() => { return runtime?.unstable_on("model-context-update", () => rerender({})); }, [runtime]); if (!runtime) return null; return runtime?.getModelContext(); } export { ThreadContext, useThread, useThreadComposer, useThreadModelContext, useThreadRuntime }; //# sourceMappingURL=ThreadContext.mjs.map