@assistant-ui/react
Version:
Typescript/React library for AI Chat
1 lines • 2.88 kB
Source Map (JSON)
{"version":3,"sources":["../../../src/primitives/threadList/ThreadListItems.tsx"],"sourcesContent":["\"use client\";\n\nimport { ComponentType, FC, memo, useMemo } from \"react\";\nimport { ThreadListItemRuntimeProvider } from \"../../context/providers/ThreadListItemRuntimeProvider\";\nimport { useAssistantRuntime, useThreadList } from \"../../context\";\n\nexport namespace ThreadListPrimitiveItems {\n export type Props = {\n archived?: boolean | undefined;\n components: {\n ThreadListItem: ComponentType;\n };\n };\n}\n\ntype ThreadListItemProps = {\n partIndex: number;\n archived: boolean;\n components: ThreadListPrimitiveItems.Props[\"components\"];\n};\n\nconst ThreadListItemImpl: FC<ThreadListItemProps> = ({\n partIndex,\n archived,\n components,\n}) => {\n const assistantRuntime = useAssistantRuntime();\n const runtime = useMemo(\n () =>\n archived\n ? assistantRuntime.threads.getArchivedItemByIndex(partIndex)\n : assistantRuntime.threads.getItemByIndex(partIndex),\n [assistantRuntime, partIndex, archived],\n );\n\n const ThreadListItemComponent = components.ThreadListItem;\n\n return (\n <ThreadListItemRuntimeProvider runtime={runtime}>\n <ThreadListItemComponent />\n </ThreadListItemRuntimeProvider>\n );\n};\n\nconst ThreadListItem = memo(\n ThreadListItemImpl,\n (prev, next) =>\n prev.partIndex === next.partIndex &&\n prev.archived === next.archived &&\n prev.components.ThreadListItem === next.components.ThreadListItem,\n);\n\nexport const ThreadListPrimitiveItems: FC<ThreadListPrimitiveItems.Props> = ({\n archived = false,\n components,\n}) => {\n const contentLength = useThreadList((s) =>\n archived ? s.archivedThreads.length : s.threads.length,\n );\n\n return Array.from({ length: contentLength }, (_, index) => (\n <ThreadListItem\n key={index}\n partIndex={index}\n archived={archived}\n components={components}\n />\n ));\n};\n\nThreadListPrimitiveItems.displayName = \"ThreadListPrimitive.Items\";\n"],"mappings":";;;AAEA,SAA4B,MAAM,eAAe;AACjD,SAAS,qCAAqC;AAC9C,SAAS,qBAAqB,qBAAqB;AAmC7C;AAlBN,IAAM,qBAA8C,CAAC;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AACF,MAAM;AACJ,QAAM,mBAAmB,oBAAoB;AAC7C,QAAM,UAAU;AAAA,IACd,MACE,WACI,iBAAiB,QAAQ,uBAAuB,SAAS,IACzD,iBAAiB,QAAQ,eAAe,SAAS;AAAA,IACvD,CAAC,kBAAkB,WAAW,QAAQ;AAAA,EACxC;AAEA,QAAM,0BAA0B,WAAW;AAE3C,SACE,oBAAC,iCAA8B,SAC7B,8BAAC,2BAAwB,GAC3B;AAEJ;AAEA,IAAM,iBAAiB;AAAA,EACrB;AAAA,EACA,CAAC,MAAM,SACL,KAAK,cAAc,KAAK,aACxB,KAAK,aAAa,KAAK,YACvB,KAAK,WAAW,mBAAmB,KAAK,WAAW;AACvD;AAEO,IAAM,2BAA+D,CAAC;AAAA,EAC3E,WAAW;AAAA,EACX;AACF,MAAM;AACJ,QAAM,gBAAgB;AAAA,IAAc,CAAC,MACnC,WAAW,EAAE,gBAAgB,SAAS,EAAE,QAAQ;AAAA,EAClD;AAEA,SAAO,MAAM,KAAK,EAAE,QAAQ,cAAc,GAAG,CAAC,GAAG,UAC/C;AAAA,IAAC;AAAA;AAAA,MAEC,WAAW;AAAA,MACX;AAAA,MACA;AAAA;AAAA,IAHK;AAAA,EAIP,CACD;AACH;AAEA,yBAAyB,cAAc;","names":[]}