@assistant-ui/react
Version:
React components for AI chat.
34 lines (33 loc) • 1.23 kB
JavaScript
"use client";
// src/ui/thread-config.tsx
import {
createContext,
useContext
} from "react";
import { AssistantRuntimeProvider } from "../context/index.mjs";
import { useAssistantRuntime } from "../context/react/AssistantContext.mjs";
import { Fragment, jsx } from "react/jsx-runtime";
var ThreadConfigContext = createContext({});
var useThreadConfig = () => {
return useContext(ThreadConfigContext);
};
var ThreadConfigProvider = ({
children,
config
}) => {
const hasAssistant = !!useAssistantRuntime({ optional: true });
const configProvider = config && Object.keys(config ?? {}).length > 0 ? /* @__PURE__ */ jsx(ThreadConfigContext.Provider, { value: config, children }) : /* @__PURE__ */ jsx(Fragment, { children });
if (!config?.runtime) return configProvider;
if (hasAssistant) {
throw new Error(
"You provided a runtime to <Thread> while simulataneously using <AssistantRuntimeProvider>. This is not allowed."
);
}
return /* @__PURE__ */ jsx(AssistantRuntimeProvider, { runtime: config.runtime, children: configProvider });
};
ThreadConfigProvider.displayName = "ThreadConfigProvider";
export {
ThreadConfigProvider,
useThreadConfig
};
//# sourceMappingURL=thread-config.mjs.map