@plteam/chat-ui
Version:
CUI Kit is a free and open-source library for creating AI assistant chat interfaces, built with React, Material UI, and TypeScript
16 lines (15 loc) • 1.09 kB
JavaScript
import * as React from 'react';
import TimeGroupItem from '../TimeGroupItem';
import ThreadListItemObserver from '../ThreadListItemObserver';
import { useObserverValue } from '../../hooks/useObserverValue';
import DelayRenderer from '../../../ui/DelayRenderer';
const ThreadListMapBlockGroupItem = ({ listGroupItem, setThread, index, model, slots, slotProps }) => {
const threads = useObserverValue(listGroupItem.threads) ?? [];
const list = React.useMemo(() => threads.map((thread) => (React.createElement(ThreadListItemObserver, { key: thread.id, setThread: setThread, thread: thread, model: model, slots: slots }))), [threads.length]);
if (!threads.length)
return null;
return (React.createElement(DelayRenderer, { once: true, timeout: index * 50 + 20 },
React.createElement(TimeGroupItem, { key: listGroupItem.data.id, group: listGroupItem.data, slots: slots, slotProps: slotProps }),
list));
};
export default React.memo(ThreadListMapBlockGroupItem, (prev, next) => prev.listGroupItem.data.id === next.listGroupItem.data.id);