@assistant-ui/react
Version:
TypeScript/React library for AI Chat
47 lines (46 loc) • 1.43 kB
JavaScript
"use client";
// src/context/providers/MessageProvider.tsx
import { useMemo } from "react";
import {
AssistantProvider,
useAssistantApi,
createAssistantApiField
} from "../react/AssistantApiContext.js";
import {
checkEventScope,
normalizeEventSelector
} from "../../types/EventTypes.js";
import { jsx } from "react/jsx-runtime";
var MessageByIndexProvider = ({ index, children }) => {
const api = useAssistantApi();
const api2 = useMemo(() => {
const getMessage = () => api.thread().message({ index });
return {
message: createAssistantApiField({
source: "thread",
query: { type: "index", index },
get: () => getMessage()
}),
composer: createAssistantApiField({
source: "message",
query: {},
get: () => getMessage().composer
}),
on(selector, callback) {
const { event, scope } = normalizeEventSelector(selector);
if (!checkEventScope("composer", scope, event) && !checkEventScope("message", scope, event))
return api.on(selector, callback);
return api.on({ scope: "thread", event }, (e) => {
if (e.messageId === getMessage().getState().id) {
callback(e);
}
});
}
};
}, [api, index]);
return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children });
};
export {
MessageByIndexProvider
};
//# sourceMappingURL=MessageProvider.js.map