@assistant-ui/react
Version:
Typescript/React library for AI Chat
31 lines • 1.3 kB
JavaScript
"use client";
import { jsx } from "react/jsx-runtime";
import { useEffect, useState } from "react";
import { ThreadContext } from "../react/ThreadContext";
import { writableStore } from "../ReadonlyStore";
import { create } from "zustand";
import { ThreadListItemRuntimeProvider } from "./ThreadListItemRuntimeProvider";
import { ensureBinding } from "../react/utils/ensureBinding";
import { ThreadViewportProvider } from "./ThreadViewportProvider";
const useThreadRuntimeStore = (runtime) => {
const [store] = useState(() => create(() => runtime));
useEffect(() => {
ensureBinding(runtime);
ensureBinding(runtime.composer);
writableStore(store).setState(runtime, true);
}, [runtime, store]);
return store;
};
const ThreadRuntimeProvider = ({ children, listItemRuntime: threadListItemRuntime, runtime }) => {
const useThreadRuntime = useThreadRuntimeStore(runtime);
const [context] = useState(() => {
return {
useThreadRuntime
};
});
return /* @__PURE__ */ jsx(ThreadListItemRuntimeProvider, { runtime: threadListItemRuntime, children: /* @__PURE__ */ jsx(ThreadContext.Provider, { value: context, children: /* @__PURE__ */ jsx(ThreadViewportProvider, { children }) }) });
};
export {
ThreadRuntimeProvider
};
//# sourceMappingURL=ThreadRuntimeProvider.js.map