UNPKG

@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

29 lines (28 loc) 993 B
import * as React from 'react'; import { ChatMessageOwner } from '../../../models'; export const useGroupedMessages = (messages) => { return React.useMemo(() => { if (!messages || messages.length === 0) { return []; } const groups = []; let currentGroup = []; for (const message of messages) { if (message.role === ChatMessageOwner.USER) { if (currentGroup.length > 0) { groups.push(currentGroup); } currentGroup = [message]; } else if (message.role === ChatMessageOwner.ASSISTANT) { if (currentGroup.length > 0 && currentGroup[0].role === ChatMessageOwner.USER) { currentGroup.push(message); } } } if (currentGroup.length > 0) { groups.push(currentGroup); } return groups; }, [messages]); };