@assistant-ui/react
Version:
TypeScript/React library for AI Chat
29 lines (23 loc) • 818 B
text/typescript
import {
createContext,
tapContext,
withContextProvider,
} from "@assistant-ui/tap";
import { ModelContextProvider } from "../model-context/ModelContextTypes";
import { Unsubscribe } from "../types";
export type ModelContextRegistrar = ModelContextProvider & {
register: (provider: ModelContextProvider) => Unsubscribe;
};
const ModelContextContext = createContext<ModelContextRegistrar | null>(null);
export const withModelContextProvider = <TResult>(
modelContext: ModelContextRegistrar,
fn: () => TResult,
) => {
return withContextProvider(ModelContextContext, modelContext, fn);
};
export const tapModelContext = () => {
const modelContext = tapContext(ModelContextContext);
if (!modelContext)
throw new Error("Model context is not available in this context");
return modelContext;
};