@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) • 1.39 kB
JavaScript
import * as React from 'react';
import ChatMessageComponent from '../message/MessageComponent';
import { ForceStream } from '../../models/stream/ForceStream';
import { useChatContext } from '../core/ChatGlobalContext';
import { useObserverValue } from '../../views/hooks/useObserverValue';
const InitialThreadMessage = ({ thread }) => {
const { initialThreadMessage } = useChatContext();
const isLoadingFullData = useObserverValue(thread.isLoadingFullData);
const messageConfig = React.useMemo(() => initialThreadMessage?.(thread.id), [thread.id, isLoadingFullData]);
const message = thread.helloMessage;
React.useEffect(() => {
if (!messageConfig || message.text === messageConfig.text)
return;
message.text = '';
if (messageConfig.stream) {
message.typing.value = true;
const stream = new ForceStream(messageConfig.text, message);
stream.start();
}
else {
message.text = messageConfig.text;
}
}, [thread.id, isLoadingFullData, messageConfig]);
if (!messageConfig)
return null;
return (React.createElement(ChatMessageComponent, { key: "helloMessage", isLatest: messageConfig.stream, message: message, isFirst: false, thread: thread, enableAssistantActions: false }));
};
export default InitialThreadMessage;