@assistant-ui/react
Version:
Typescript/React library for AI Chat
37 lines (36 loc) • 1.24 kB
JavaScript
"use client";
// src/context/providers/MessageRuntimeProvider.tsx
import { useEffect, useState } from "react";
import { create } from "zustand";
import { MessageContext } from "../react/MessageContext.mjs";
import { makeMessageUtilsStore } from "../stores/MessageUtils.mjs";
import { writableStore } from "../ReadonlyStore.mjs";
import { ensureBinding } from "../react/utils/ensureBinding.mjs";
import { jsx } from "react/jsx-runtime";
var useMessageRuntimeStore = (runtime) => {
const [store] = useState(() => create(() => runtime));
useEffect(() => {
ensureBinding(runtime);
writableStore(store).setState(runtime, true);
}, [runtime, store]);
return store;
};
var useMessageUtilsStore = () => {
const [store] = useState(() => makeMessageUtilsStore());
return store;
};
var MessageRuntimeProvider = ({
runtime,
children
}) => {
const useMessageRuntime = useMessageRuntimeStore(runtime);
const useMessageUtils = useMessageUtilsStore();
const [context] = useState(() => {
return { useMessageRuntime, useMessageUtils };
});
return /* @__PURE__ */ jsx(MessageContext.Provider, { value: context, children });
};
export {
MessageRuntimeProvider
};
//# sourceMappingURL=MessageRuntimeProvider.mjs.map