UNPKG

@assistant-ui/react

Version:

TypeScript/React library for AI Chat

66 lines (65 loc) 2.15 kB
"use client"; // src/context/providers/ThreadListItemProvider.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 ThreadListItemByIndexProvider = ({ index, archived, children }) => { const api = useAssistantApi(); const api2 = useMemo(() => { const getItem = () => api.threads().item({ index, archived }); return { threadListItem: createAssistantApiField({ source: "threads", query: { type: "index", index, archived }, get: () => getItem() }), on(selector, callback) { const { event, scope } = normalizeEventSelector(selector); if (!checkEventScope("thread-list-item", scope, event)) return api.on(selector, callback); return api.on({ scope: "*", event }, (e) => { if (e.threadId === getItem().getState().id) { callback(e); } }); } }; }, [api, index, archived]); return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children }); }; var ThreadListItemByIdProvider = ({ id, children }) => { const api = useAssistantApi(); const api2 = useMemo(() => { const getItem = () => api.threads().item({ id }); return { threadListItem: createAssistantApiField({ source: "threads", query: { type: "id", id }, get: () => getItem() }), on(selector, callback) { const { event, scope } = normalizeEventSelector(selector); if (!checkEventScope("thread-list-item", scope, event)) return api.on(selector, callback); return api.on({ scope: "*", event }, (e) => { if (e.threadId !== getItem().getState().id) return; callback(e); }); } }; }, [api, id]); return /* @__PURE__ */ jsx(AssistantProvider, { api: api2, children }); }; export { ThreadListItemByIdProvider, ThreadListItemByIndexProvider }; //# sourceMappingURL=ThreadListItemProvider.js.map