UNPKG

@assistant-ui/react

Version:

Typescript/React library for AI Chat

46 lines (45 loc) 1.6 kB
"use client"; // src/primitives/threadList/ThreadListItems.tsx import { memo, useMemo } from "react"; import { ThreadListItemRuntimeProvider } from "../../context/providers/ThreadListItemRuntimeProvider.mjs"; import { useAssistantRuntime, useThreadList } from "../../context/index.mjs"; import { jsx } from "react/jsx-runtime"; var ThreadListItemImpl = ({ partIndex, archived, components }) => { const assistantRuntime = useAssistantRuntime(); const runtime = useMemo( () => archived ? assistantRuntime.threads.getArchivedItemByIndex(partIndex) : assistantRuntime.threads.getItemByIndex(partIndex), [assistantRuntime, partIndex, archived] ); const ThreadListItemComponent = components.ThreadListItem; return /* @__PURE__ */ jsx(ThreadListItemRuntimeProvider, { runtime, children: /* @__PURE__ */ jsx(ThreadListItemComponent, {}) }); }; var ThreadListItem = memo( ThreadListItemImpl, (prev, next) => prev.partIndex === next.partIndex && prev.archived === next.archived && prev.components.ThreadListItem === next.components.ThreadListItem ); var ThreadListPrimitiveItems = ({ archived = false, components }) => { const contentLength = useThreadList( (s) => archived ? s.archivedThreads.length : s.threads.length ); return Array.from({ length: contentLength }, (_, index) => /* @__PURE__ */ jsx( ThreadListItem, { partIndex: index, archived, components }, index )); }; ThreadListPrimitiveItems.displayName = "ThreadListPrimitive.Items"; export { ThreadListPrimitiveItems }; //# sourceMappingURL=ThreadListItems.mjs.map