UNPKG

@assistant-ui/react

Version:

TypeScript/React library for AI Chat

52 lines (51 loc) 1.45 kB
"use client"; // src/context/providers/TextMessagePartProvider.tsx import { useMemo } from "react"; import { AssistantProvider, createAssistantApiField } from "../react/AssistantApiContext.js"; import { resource, tapMemo } from "@assistant-ui/tap"; import { useResource } from "@assistant-ui/tap/react"; import { asStore, tapApi } from "../../utils/tap-store/index.js"; import { jsx } from "react/jsx-runtime"; var TextMessagePartClient = resource( ({ text, isRunning }) => { const state = tapMemo( () => ({ type: "text", text, status: isRunning ? { type: "running" } : { type: "complete" } }), [text, isRunning] ); return tapApi({ getState: () => state, addToolResult: () => { throw new Error("Not supported"); }, __internal_getRuntime: () => null }); } ); var TextMessagePartProvider = ({ text, isRunning = false, children }) => { const store = useResource( asStore(TextMessagePartClient({ text, isRunning })) ); const api = useMemo(() => { return { part: createAssistantApiField({ source: "root", query: {}, get: () => store.getState().api }), subscribe: store.subscribe, flushSync: store.flushSync }; }, [store]); return /* @__PURE__ */ jsx(AssistantProvider, { api, children }); }; export { TextMessagePartProvider }; //# sourceMappingURL=TextMessagePartProvider.js.map