@assistant-ui/react
Version:
Typescript/React library for AI Chat
38 lines (37 loc) • 1.22 kB
JavaScript
"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