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) 1.34 kB
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", message: message, thread: thread, enableAssistantActions: false })); }; export default InitialThreadMessage;