@assistant-ui/react
Version:
Typescript/React library for AI Chat
35 lines • 1.17 kB
JavaScript
"use client";
import { jsx } from "react/jsx-runtime";
import { useEffect, useState } from "react";
import { create } from "zustand";
import { MessageContext } from "../react/MessageContext";
import { makeMessageUtilsStore } from "../stores/MessageUtils";
import { writableStore } from "../ReadonlyStore";
import { ensureBinding } from "../react/utils/ensureBinding";
const useMessageRuntimeStore = (runtime) => {
const [store] = useState(() => create(() => runtime));
useEffect(() => {
ensureBinding(runtime);
writableStore(store).setState(runtime, true);
}, [runtime, store]);
return store;
};
const useMessageUtilsStore = () => {
const [store] = useState(() => makeMessageUtilsStore());
return store;
};
const 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.js.map