UNPKG

@assistant-ui/react

Version:

Typescript/React library for AI Chat

36 lines 1.19 kB
"use client"; import { createContext, useEffect, useState } from "react"; import { createContextHook } from "./utils/createContextHook"; import { createStateHookForRuntime } from "./utils/createStateHookForRuntime"; const ThreadContext = createContext(null); const useThreadContext = createContextHook( ThreadContext, "AssistantRuntimeProvider" ); function useThreadRuntime(options) { const context = useThreadContext(options); if (!context) return null; return context.useThreadRuntime(); } const useThread = createStateHookForRuntime(useThreadRuntime); const useThreadComposerRuntime = (opt) => useThreadRuntime(opt)?.composer ?? null; const 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.js.map