@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
JavaScript
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]);
};