@assistant-ui/react
Version:
Typescript/React library for AI Chat
36 lines • 1.19 kB
JavaScript
"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