@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
21 lines (20 loc) • 1.28 kB
JavaScript
import * as React from 'react';
import { arrayPluckAndJoin } from '../../utils/arrayUtils/arrayPluckAndJoin';
import ChatMessageComponent from './MessageComponent';
import Stack from '@mui/material/Stack';
import { useChatContext } from '../core/ChatGlobalContext';
const MessagesInGroup = ({ messages, isLatestGroup, thread, gap }) => {
const { apiRef } = useChatContext();
const messagesLength = messages.length;
const minHeight = React.useMemo(() => {
if (isLatestGroup) {
return apiRef.current?.getConversationBlockHeight();
}
return undefined;
}, [isLatestGroup]);
return (React.createElement(Stack, { gap: gap, minHeight: minHeight, alignItems: "flex-start", maxWidth: "100%", width: "100%" }, messages.map((message, key) => (React.createElement(ChatMessageComponent, { key: message.viewerUniqueKey, enableAssistantActions: true, message: message, thread: thread, isFirst: !key, isLatest: isLatestGroup ? key === messagesLength - 1 : undefined })))));
};
export default React.memo(MessagesInGroup, (prevProps, nextProps) => {
return prevProps.isLatestGroup === nextProps.isLatestGroup
&& arrayPluckAndJoin(prevProps.messages, 'id') === arrayPluckAndJoin(nextProps.messages, 'id');
});